This is the mail archive of the ecos-discuss@sourceware.org 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: N00blet question on networking


Chuck McManis wrote:
Ok, so I have redboot working. Further I can build a libtarget.a with a basic set of options, I tried the simple program to get data from the console and echo it back, and I can boot redboot, 'load -h <my server> simple' and 'go' to run it. All's cool.

So I used ecosconfig to add in CYGPKG_NET and FREEBSD_STACK and ETH_DRIVERS
(actually there was a point where I had no conflicts but a couple of ethernet driver files were missing, its a CDL bug but I've not assured myself that I know enough about what I'm doing to call it a bug outright yet ;-)


Now I can build the httpd1.c test and when I run it this is what I get:
----------------------------------------------------
Ethernet eth0: MAC address 00:0a:00:c0:ff:ee
IP: 192.168.110.124/255.255.255.0, Gateway: 192.168.110.254
Default server: 0.0.0.0

RedBoot(tm) bootstrap and debug environment [GRUB]
Non-certified release, version UNKNOWN - built 21:38:48, Feb 19 2007

Platform: PC (I386)
Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.
Copyright (C) 2003, 2004, 2005, 2006 eCosCentric Limited

RAM: 0x00100000-0x040f0000, [0x0018da10-0x01000000] available
RedBoot> load -h 192.168.110.30 httpd1
Using default protocol (TFTP)
Entry point: 0x00208000, address range: 0x00208000-0x00244720
RedBoot> go
[cyg_net_init] Init: mbinit(0x00000000)
[cyg_net_init] Init: cyg_net_init_devs(0x00000000)
Init device 'vt8235_eth0'
[cyg_net_init] Init: loopattach(0x00000000)
[cyg_net_init] Init: ifinit(0x00000000)
[cyg_net_init] Init: domaininit(0x00000000)
[cyg_net_init] Init: cyg_net_add_domain(0x00243f80)
New domain internet at 0x00000000
[cyg_net_init] Init: cyg_net_add_domain(0x002436c0)
New domain route at 0x00000000
[cyg_net_init] Init: call_route_init(0x00000000)
[cyg_net_init] Done
[eth_drv_ioctl] Warning: Driver can't set multi-cast mode
[eth_drv_ioctl] Warning: Driver can't set multi-cast mode

----------------------------------------

Ok, but when I do this, there doesn't seem to be any way to talk to my target board. Eventually it prints :

BOOTP/DHCP failed on eth0
[eth_drv_ioctl] Warning: Driver can't set multi-cast mode
[eth_drv_ioctl] Warning: Driver can't set multi-cast mode

Which seems unusual given that DHCP worked fine for Redboot.

So here are some questions:

What should this test print when it works? Should I be able to ping my target after using init_all_network_interfaces() ? What is different between Redboot's use of my driver and ECOS's use of the driver?

The most likely cause is not getting interrupts from your ethernet card. RedBoot doesn't use them but eCos requires that they work.

Try putting some 'diag_printf()' calls in the ethernet driver to
see what's happening.

Note: at this point, it's best to access RedBoot via the serial port
and leave network based debugging for later.

--
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------

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


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