Showing results for 
Search instead for 
Did you mean: 
Honored Contributor I

problem with enet on 3C120 dev board

Alright, this one is killing me: 


I purchased a Cyclone III Dev Bd with the 3C120 device about 2 years ago and I can successfully run my Triple Speed Enet project on this board. However, I recently bought another CIII dev board, and when I try to run it, the code freezes after "Auto-Negotiation PASSED" prints to the screen. And yes, all my jumper/switch/programming settings are the exact same on both boards. I am still using Nios II 9.0 IDE, if that matters. I'm thinking they must have changed the dev board enet setup somehow in the last 2 years, even though it still has the Marvell 88E1111 chip on it.  


Here's the output using the old dev board: 



Created "Inet main" task (Prio: 4) 

Created "clock tick" task (Prio: 5) 

InterNiche Portable TCP/IP, v3.1  


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

prep_tse_mac 0 

Your Ethernet MAC address is 12:34:56:78:9a:bc 


Static Address Report: 

-- IP Address : 

-- Network Mask : 

-- Gateway Address : 

-- Use DHCP = 0 


prepped 1 interface, initializing... 


INFO : TSE MAC 0 found at address 0x0d000000 

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 = 1000, Duplex = Full 

OK, x=0, CMD_CONFIG=0x00000000 


MAC post-initialization: CMD_CONFIG=0x0400020b 

[tse_sgdma_read_init] RX descriptor chain desc (1 depth) created 

mctest init called 

IP address of et1 : 


Enet Server starting up 

Created "6112xb enet command server" task (Prio: 6) 

Created "6112xb enet telemetry server" task (Prio: 7) 




But like I said, on the new board, it passes the auto-negotiation then hangs before it gets to the "Checking link..." message.  


Any ideas?
0 Kudos
5 Replies
Honored Contributor I

Altera now has a reference design for that kit that includes an Ethernet interface. You can try and download it to see if the problem in on the board or in your design.

Honored Contributor I

Where can I download the reference design? Thanks.

Honored Contributor I

You can find it here ( and look into the cycloneIII_3c120_dev_niosII_standard example.

Honored Contributor I

To recap the problem: 


- I have two (supposedly) identical 3C120 dev boards, one purchased 2008, one in 2010, with all jumper settings the same. 


- The standard "Simple Socket Server" program runs fine on both boards. 


- My custom program based on SSS works on the old board but not on the new one. They compile and start up identically, but the new board freezes immediately after the typical uCOS/iNiche messages. 



New info: 


- The new board actually does not freeze at "Checking Link" - it makes it past all the same setup messages code as the old bd, but freezes before the printf() screen can finish updating. 


- After carefully stepping through the code (to give printf() time to finish), I get the infamous message immediately before the freeze:  


"no free buffers for rx" 



So then the question becomes: what dev board change could possibly create a "no free buffers for rx" problem? The documentation certainly doesn't mention any bd changes. Is anybody here smarter than my Altera field rep that couldn't figure it out?
Honored Contributor I



have you solved that problem? 

The ethernet port on my 3c120 board does not work, too. I think it could be the same problem.