This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
RE: FW: Ethernet init problem
- From: "Daniel Lidsten" <Daniel dot Lidsten at combitechsystems dot com>
- To: "Andrew Lunn" <andrew dot lunn at ascom dot ch>, "eCos Disuss" <ecos-discuss at sources dot redhat dot com>
- Date: Thu, 6 Feb 2003 20:33:26 +0100
- Subject: RE: [ECOS] FW: Ethernet init problem
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.
I have the default value for loopback (1) set in the freeBSD options in
ConfigTool. Can this have inpact on my driver, like disabling it?
Is there anything else that i can check?
Regards, Daniel
Init device '/dev/ser1'
QUICC_SMC SERIAL init - dev: 90.54 Init device '/dev/ttydiag' Init tty
channel: 75a48 Init device '/dev/tty0' Init tty channel: 75a68 Init
device '/dev/tty1' Init tty channel: 75a88 Init device '/dev/haldiag'
HAL/diag SERIAL init Network stack using 196608 bytes for misc space
196608 bytes for mbufs
393216 bytes for mbuf clusters [cyg_net_init] Init:
mbinit(0x00000000) Alloc mbuf = 0x000b2800 Alloc mbuf = 0x000b2880 Alloc
mbuf = 0x000b2900 Alloc mbuf = 0x000b2980 Alloc mbuf = 0x000b2a00 Alloc
mbuf = 0x000b2a80 Alloc mbuf = 0x000b2b00 Alloc mbuf = 0x000b2b80 Alloc
mbuf = 0x000b2c00 Alloc mbuf = 0x000b2c80 Alloc mbuf = 0x000b2d00 Alloc
mbuf = 0x000b2d80 Alloc mbuf = 0x000b2e00 Alloc mbuf = 0x000b2e80 Alloc
mbuf = 0x000b2f00 Alloc mbuf = 0x000b2f80 Allocate cluster = 0x000e2edc
[cyg_net_init] Init: cyg_net_init_devs(0x00000000) Init device
'quicc_eth' [cyg_net_init] Init: loopattach(0x00000000)
cyg_if_attach.214 - After initialize list 0x006450bc
IFP: 0x006450ac (lo0)
cyg_getmicrotime: = 1.0
Net malloc[64] = 0x000b2640
Net malloc[64] = 0x000b25f0
Net malloc[236] = 0x000b24f0
cyg_if_attach.279 - After inserting 0x000b24f0 into list 0x006450bc
IFP: 0x006450ac (lo0)
IFA: 0x000b24f0 - <<0x000b256c>>
[cyg_net_init] Init: ifinit(0x00000000)
IFP: 0x006450ac, next: 0x00000000
[cyg_net_init] Init: domaininit(0x00000000)
zinit 'socket', size: 176, num: 100, flags: 1, alloc: 0 [cyg_net_init]
Init: cyg_net_add_domain(0x0007570c) New domain internet at 0x00000000
Net malloc[64] = 0x000adfa0 Net malloc[64] = 0x000adf50 zinit 'udpcb',
size: 280, num: 100, flags: 1, alloc: 0 Net malloc[2048] = 0x000a69a0
Net malloc[2048] = 0x000a6190 zinit 'tcpcb', size: 616, num: 100, flags:
1, alloc: 0 Net malloc[4] = 0x000970a0 Net malloc[4] = 0x00097090 zinit
'ripcb', size: 280, num: 100, flags: 1, alloc: 0 [cyg_net_init] Init:
cyg_net_add_domain(0x000751a0) New domain route at 0x00000000
[cyg_net_init] Init: cyg_route_init(0x00000000) Net malloc[48] =
0x000902b0 Net malloc[124] = 0x00090220 Net malloc[124] = 0x00090190
[cyg_net_init] Done
About to init network with params:
----------------------------------
IP :146.75.80.248
MAC :0-40-85-5-3-e9
Netmask :255.255.255.0
Broadcast:146.75.80.255
Gateways :146.75.80.254
Server :192.168.1.101
PC IP :192.168.0.0
----------------------------------
cyg_if_attach.214 - After initialize list 0x0007483c
IFP: 0x0007482c (eth0)
cyg_getmicrotime: = 1.160000
Net malloc[236] = 0x00090090
cyg_if_attach.279 - After inserting 0x00090090 into list 0x0007483c
IFP: 0x0007482c (eth0)
IFA: 0x00090090 - <<0x0009010c>>
zalloci from socket => 0x000b2400
zalloci from udpcb => 0x000addf8
cyg_ifioctl: cmd: SIOCGIFHWADDR, data:
eth_drv_ioctl: cmd: SIOCGIFHWADDR, data:
00078718: 65 74 68 30 00 07 87 20 00 07 87 38 00 06 B3 D4 |eth0...
...8....|
00078728: 00 00 00 00 00 07 87 30 00 07 87 40 00 07 87 38
|.......0...@...8| zfreei to udpcb <= 0x000addf8 zfreei to socket <=
0x000b2400 BOOTP[eth0] op: REPLY
htype: Ethernet
hlen: 6
hops: 0
xid: 0x0
secs: 0
flags: 0x0
hw_addr: 00:11:22:33:44:55
client IP: 146.75.80.248
my IP: 146.75.80.248
server IP: 192.168.1.101
gateway IP: 146.75.80.254
options:
subnet mask: 255.255.255.0
IP broadcast: 146.75.80.255
gateway: 146.75.80.254
zalloci from socket => 0x000b2400
zalloci from udpcb => 0x000addf8
cyg_ifioctl: cmd: SIOCSIFADDR, data:
Net malloc[200] = 0x0008ffb0
eth_drv_ioctl: cmd: SIOCSIFADDR, data:
0008FFB0: 00 09 00 48 00 09 00 58 00 09 00 68 00 00 00 00
|...H...X...h....|
0008FFC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|................| Net malloc[148] = 0x0008ff10 Net malloc[32] =
0x0008fee0 Net malloc[64] = 0x0008fe90 Net malloc[72] = 0x0008fe30 Net
malloc[54] = 0x0008fde0 Net malloc[28] = 0x0008fdb0 Net malloc[16] =
0x0008fd90 Net malloc[28] = 0x0008fd60 Net malloc[54] = 0x0008fd10
eth_drv_ioctl: cmd: SIOCADDMULTI, data:
00000000: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D
|----------------|
00000010: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D
|----------------| Driver can't set multi-cast mode Net malloc[32] =
0x0008fce0
cyg_ifioctl: cmd: SIOCSIFNETMASK, data:
cyg_ifioctl: cmd: SIOCSIFADDR, data:
eth_drv_ioctl: cmd: SIOCSIFADDR, data:
0008FFB0: 00 09 00 48 00 09 00 58 00 09 00 68 00 00 00 00
|...H...X...h....|
0008FFC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|................|
eth_drv_ioctl: cmd: SIOCADDMULTI, data:
00000000: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D
|----------------|
00000010: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D
|----------------| Driver can't set multi-cast mode Net malloc[148] =
0x0008fc40 Net malloc[32] = 0x0008fc10 Net malloc[64] = 0x0008fbc0 Net
malloc[72] = 0x0008fb60
cyg_ifioctl: cmd: SIOCSIFBRDADDR, data:
cyg_ifioctl: cmd: SIOCSIFFLAGS, data:
eth_drv_ioctl: cmd: SIOCSIFFLAGS, data:
00078688: 65 74 68 30 00 07 86 D4 00 00 00 92 00 00 00 4B
|eth0...........K|
00078698: 00 43 88 43 92 4B 50 FF 00 00 00 00 00 00 00 00
|.C.C.KP.........|
eth_drv_ioctl: cmd: SIOCADDMULTI, data:
00000000: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D
|----------------|
00000010: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D
|----------------| Driver can't set multi-cast mode
cyg_getmicrotime: = 1.950000
Net malloc[148] = 0x0008fac0
Net malloc[32] = 0x0008fa90
Net malloc[148] = 0x0008f9f0
Net malloc[72] = 0x0008f990
Net malloc[16] = 0x0008f97
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss