This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: FW: Ethernet init problem


On Thu, 2003-02-06 at 15:50, Jonathan Larmour wrote:
> Daniel Lidsten wrote:
> > Hi again,
> > 
> > Disregard the previous mail about eth_drv_init not being called.
> >  
> > 
> >>>packages/io/eth/current/src/net/eth_drv.c:eth_drv_init()
> >>>
> >>>when it calls ether_ifattach. Look at the name inside ifp. This has 
> >>>to be the same name as the ioctl is calling, which from the trace 
> >>>you posted, is "eth0".
> > 
> > 
> > Yes, i can see that it has eth0 as a parameter.  
> >  
> > 
> >>>Which stack are you using? FreeBSD or OpenBSD?
> > 
> >  
> > 
> > FreeBSD (new stack)
> > 
> > Below is a printout with all logging turned on. In the ethernet setting
> > in configtool i have enabled the "configure manually". This is because i
> > want to set the ip etc at a later time. However, nothing has changed in
> > the calling seqence regarding init_net etc. The only real error i get
> > right now is the: "Driver can't set multi-cast mode". Can this stop the
> > init seqence and make the interface unreachable.
> 
> Not in itself. But the question is, why is it even trying to. 
> io/eth/current/src/net/eth_drv.c contains:
> 
> #ifdef CYGPKG_NET_FREEBSD_STACK
>      // resend multicast addresses if present
>      if(ifp->if_multiaddrs.lh_first && ifp->if_ioctl) {
>          int s = splimp();
>          ifp->if_ioctl(ifp, SIOCADDMULTI, 0);
>          splx(s);
>      }
> #endif
> 
> There shouldn't be any multicast addresses I'd have thought. And naturally 
> it fails because the QUICC eth driver doesn't support multicast yet.
> 
> Whatever is causing this to happen may be causing your real problem too.
> 

Actually, it always makes this call, initially with an empty multicast
list.  Also, this is only a warning - the upper layers ignore the fact
that the driver can't handle multicast addresses and just continue.

> But another probably more promising line of attack is that "Init device 
> 'quicc_eth'" doesn't necessarily mean your eth device itself was included. 
> That init comes from the NETDEVTAB, but the eth0 instance is defined 
> separately. Check if your program image includes quicc_eth0_sc.
> 

Or put an explicit diag_printf() call somewhere in the QUICC ethernet
initialization, just to see if it gets there.

-- 
.--------------------------------------------------------.
|       Mind: Embedded Linux and eCos Development        |
|--------------------------------------------------------|
| Gary Thomas              email:  gary.thomas@mind.be   |
| Mind ( http://mind.be )  tel:    +1 (970) 229-1963     |
| gpg: http://www.chez-thomas.org/gary/gpg_key.asc       |
'--------------------------------------------------------'


-- 
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]