This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
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