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++

LWIP doesn't work...

Altera_Forum
Honored Contributor II
1,112 Views

Hi! 

 

I have tested stand-alone lwip with Nios2 standard example design, and it works fine. I implemented multiprocessor environment where is three standard nios 2 processors. One processor is going to handle interface to Internet and others have some other work. But stand-alone lwip doesn't work in Internet interface handler, sometimes it prints something like this "can't get mac-address, modify get_mac_address function...", and sometimes nothing, but telnet connection is not working. 

 

Have someone any idea where to start looking the reason for this behaviour? 

 

Thanks.. 

-CoolMan
0 Kudos
5 Replies
Altera_Forum
Honored Contributor II
421 Views

The get_mac_address function is coverred in the Nios II Software Developers Handbook in Chapter 9, you should read this first.

0 Kudos
Altera_Forum
Honored Contributor II
421 Views

Hi Coolman, 

 

Modify you mac_addr.c file to look something like this. 

 

#include "alt_types.h"# include "io.h"# include "lwip/netif.h" /* * read_mac_address * * Read the MAC address in a board specific way * */ err_t read_mac_address(struct netif *netif) {  err_t ret_code = ERR_IF;  alt_u32 signature;  /*  * Our board has the MAC address stored at 0x7f000 in flash  */# if defined(ALTERA_NIOS_DEV_BOARD_CYCLONE_1C20) ||    defined(ALTERA_NIOS_DEV_BOARD_STRATIX_1S10) ||    defined(ALTERA_NIOS_DEV_BOARD_STRATIX_1S10_ES) ||    defined(ALTERA_NIOS_DEV_BOARD_STRATIX_1S40)  signature = IORD_32DIRECT(0x7f0000, 0);  if (signature != 0x00005afe)  {    fprintf(stderr, "\n-- FIX THIS -- Can't read the MAC address from flash -- FIX THIS -- .\nSetting MAC address to default FF:FF:FF:FF:FF:FF\n");    netif->hwaddr_len = 6;    netif->hwaddr = 0xFF;    netif->hwaddr = 0xFF;    netif->hwaddr = 0xFF;    netif->hwaddr = 0xFF;    netif->hwaddr = 0xFF;    netif->hwaddr = 0xFF;    ret_code = ERR_OK;      }  else  {    /* Set MAC hardware address length */    netif->hwaddr_len = 6;    netif->hwaddr = IORD_8DIRECT(0x7f0000, 4);    netif->hwaddr = IORD_8DIRECT(0x7f0000, 5);    netif->hwaddr = IORD_8DIRECT(0x7f0000, 6);    netif->hwaddr = IORD_8DIRECT(0x7f0000, 7);    netif->hwaddr = IORD_8DIRECT(0x7f0000, 8);    netif->hwaddr = IORD_8DIRECT(0x7f0000, 9);    ret_code = ERR_OK;  }# else  fprintf(stderr, "Not an Altera board.\nYou need to modify the function read_mac_address to set a MAC address for your board.\n");# endif  return ret_code; } 

 

Here you simply replace the FF's with the correct MAC address.  

NOTE this is an UGLY hack just to get it working. It CAN NOT / SHOULD NOT be used in a production system.  

It should at least give you an idea of where to look for your problem
0 Kudos
Altera_Forum
Honored Contributor II
421 Views

Hi, 

 

thank for your advices. But unfortunately it is not working. Is there possibility to be something wrong with my hardware connections, bdf-file or sopc-builder-file? 

Have you any idea? 

 

Thanks.. 

-CoolMan
0 Kudos
Altera_Forum
Honored Contributor II
421 Views

 

--- Quote Start ---  

originally posted by coolman@Oct 15 2004, 12:31 AM 

hi, 

 

thank for your advices. but unfortunately it is not working. is there possibility to be something wrong with my hardware connections, bdf-file or sopc-builder-file? 

have you any idea? 

 

thanks.. 

-coolman 

<div align='right'><{post_snapback}> (index.php?act=findpost&pid=2106) 

--- quote end ---  

 

--- Quote End ---  

 

 

Hi Coolman, 

 

same prob here.... using nios II ide 5.0.... 

 

quite frustrating as it is 

 

cheers, 

 

Danny
0 Kudos
Altera_Forum
Honored Contributor II
421 Views

 

--- Quote Start ---  

originally posted by dannyjacobs+nov 4 2005, 10:27 am--><div class='quotetop'>quote (dannyjacobs @ nov 4 2005, 10:27 am)</div> 

--- quote start ---  

<!--quotebegin-coolman@Oct 15 2004, 12:31 AM 

hi, 

 

thank for your advices. but unfortunately it is not working. is there possibility to be something wrong with my hardware connections, bdf-file or sopc-builder-file? 

have you any idea? 

 

thanks.. 

-coolman 

<div align='right'><{post_snapback}> (index.php?act=findpost&pid=2106) 

--- quote end ---  

 

--- Quote End ---  

 

 

Hi Coolman, 

 

same prob here.... using nios II ide 5.0.... 

 

quite frustrating as it is 

 

cheers, 

 

Danny 

<div align='right'><{post_snapback}> (index.php?act=findpost&pid=10796)</div> 

[/b] 

--- Quote End ---  

 

 

 

Hi all, 

 

solved it... your should remove the if statement and just assign an own MAC. It works http://forum.niosforum.com/work2/style_emoticons/<#EMO_DIR#>/smile.gif  

 

Danny
0 Kudos
Reply