This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
Well its working but ...
- From: Chuck McManis <ecos at mcmanis dot com>
- To: ECOS Discussion List <ecos-discuss at sources dot redhat dot com>
- Date: Thu, 22 Feb 2007 22:22:22 -0800
- Subject: [ECOS] Well its working but ...
Ok, so its working. Even better pings are nice and fast :
-------------------------------------------------------------
ping 192.168.110.122
PING 192.168.110.122 (192.168.110.122): 56 data bytes
64 bytes from 192.168.110.122: icmp_seq=0 ttl=64 time=0.261 ms
64 bytes from 192.168.110.122: icmp_seq=1 ttl=64 time=0.237 ms
64 bytes from 192.168.110.122: icmp_seq=2 ttl=64 time=0.244 ms
64 bytes from 192.168.110.122: icmp_seq=3 ttl=64 time=0.247 ms
64 bytes from 192.168.110.122: icmp_seq=4 ttl=64 time=0.237 ms
64 bytes from 192.168.110.122: icmp_seq=5 ttl=64 time=0.238 ms
64 bytes from 192.168.110.122: icmp_seq=6 ttl=64 time=0.240 ms
64 bytes from 192.168.110.122: icmp_seq=7 ttl=64 time=0.242 ms
^C
--- 192.168.110.122 ping statistics ---
8 packets transmitted, 8 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.237/0.243/0.261/0.007 ms
--------------------------------------------------------------
Quarter millisecond is definitely in the ball park.
The way I got it to work was to force the RXEnable flag in CR0 at the
end of the TxSent interrupt service routine. Basically before I exit
I turn RXEnable on regardless and it stays set through calls to the
ISR/DSR and packets are received. If I don't turn this flag on there
it gets reset at some point and the device stops receiving packets :-(.
So a couple of questions for Gary or anyone else who knows the
ethernet driver internals.
So which is the "preferred" (and by that I mean the one that is used
by most people so it gets the most testing) network stack ? Because
I'm somewhat familiar with the FreeBSD one I chose it and was
surprised to see ECOS complaining that it couldn't set multicast
address groups. (Not sure what I'd do with them). So my driver simply
lies at the moment to keep the stack from calling that function again
and again and resetting the interface... any way, why does it want to do that?
The second question is this output from the httpd test (which just
calls init_all_network_devices())
Route - dst: 0.0.0.0, mask: 0.0.0.0, gateway: 192.168.110.254
So basically this is like the static route to tell every packet that
is sent to any address should go out of my network adapter? I was expecting
route: 192.168.110.0 mask 255.255.255.0, gateway: 192.168.110.254.
If the 0.0.0.0 route is just a stand-in for "default route" then I'm
certainly ok with that, just wondering why it wouldn't say route: default.
The last question is that I periodically get my dsr called with no
interrupt event. I'm wondering why. Nothing seems to have
interrupted. I can use that to go check the Phy to see if the link
state has changed but other than that was wondering who called in so to speak.
--Chuck
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss