Re: Ethernet causing reboot

"seecwriter" <seecwriter-/[email protected]>
Newsgroups gmane.comp.hardware.rabbit-semiconductor
Message-ID <[email protected]>
I figured it out. I was calling ifconfig(). It's in the callback function I'm using. And I had a wrong parameter type, just like the
notes in Net.Lib suggested.

As a result of troubleshooting this problem, I stumbled across another. But I start a new thread for it.

Steve

--- In [email protected], "seecwriter" <seecwriter@...> wrote:
>
> I have another Ethernet issue on an RCM6750. I power up the module with an Ethernet cable attached, it powers up fine. I then unplug the Ethernet cable, my app correctly detects the disconnected cable and brings Ethernet down. When the cable is plugged back in, the Net.Lib crashes and the module reboots.
> 
> Here is what I do:
> 
> void CheckCable()
>   if ( !pd_havelink( IF_ETH0 ) ) {
>     if (ifpending( IF_ETH0 )==IF_UP)
>       ifdown(IF_ETH0);
>   }
>   else {
>     if (ifpending( IF_ETH0 )==IF_DOWN)
>       ifup(IF_ETH0);
>   }
> }
> 
> When ifup() is called, I get error message:
> 
> Runtime error: Bad parameter passed to I/O function
> File: NET.LIB
> Function: vifconfig
> Line: 5614
> 
> I then enable verbose in Net.Lib, and when it crashes it prints out this message:
> 
> NET: ifconfig() bad or inappropriate IFS/IFG parameter ID: 1 
>   Apparently at IFS/IFG parameter number 2 
>   Last apparently successful IFS/IFG parameter is 312 
> 
> The message indicates that there is something wrong with a parameter passed in ifconfig(). But I'm not calling ifconfig() in this process, and I can't tell which parameter it's referring to.
> 
> I only call ifconfig() on power-up to initialize Ethernet. Here are the two calls I make:
> 
>   i = ifconfig( IF_ETH0,
>                 IFS_IF_CALLBACK, EnetUpDown, // Set Up/Down status
>                 IFS_DHCP, IsDhcpIP(), // Use DHCP to configure port if enabled
>                 IFS_DHCP_TIMEOUT, 65, // Specify timeout in seconds
>                 IFS_DHCP_FALLBACK, 1, // Allow use of fallbacks to
>                                       // static configuration
>                 IFS_ICMP_CONFIG,   0, // Don't allow use of directed
>                                       // ping to configure.
>                 IFS_END );
> 
> // Set Static IP parameters. These are also the DHCP fallback parameters.
> i = ifconfig( IF_ETH0,
> 	IFS_IPADDR,   	static_ip_adrs,
> 	IFS_NETMASK,  	net_mask,
> 	IFS_END );
> 
> A comment in Net.Lib states that the most common reason for this error is an improper parameter size being used in ifconfig(), such as an int being used when it calls for a long. I've verified all the parameters I pass.
> 
> Once again, code that has been working the R3k modules doesn't with R6k.
> 
> Any ideas?
> 
> Steve
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.