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: A clue....


At 04:37 AM 2/15/2006, Andrew Lunn wrote:
Does it known its own MAC address? Where does it get it from? When it
sends out the ARP request what does it use for its own address?

Yes, it does. This is the bit of the log that shows the eCos target trying to ARP:


##Tx descriptor index 0 TDES 0012c090 buffer 0012c0d0
TxEvent: len: 0x002a
Packet data at 0x0012c0d0
ff ff ff ff ff ff 75 17 c7 05 04 4d 08 06 00 01 08 00 06 04 00 01 75 17 c7 05 04 4d c0 a8 6e b1 6e ff 00 8a 00 8a c0 a8 6e 1e
Padded 42 byte packet to 60 bytes
Before TX: Desc (@0x0012c090) 80000000 00e0803c 0012c0d0 0012c0a0
Next (@0x0012c0a0) 00000000 00e0803c 0012c6d8 0012c0b0
vt8235_send:END: ints at TX: 00


As you can see the destination address is FF:FF...FF but the source address is 75:17:C7:05:05:4D which is the correct MAC address for the card. I'm pretty sure the PHY is working fine as I can talk to it, and if it were in loopback mode or something it wouldn't send out any data (but tcpdump on my host sees the packet come out, and tcpdump sees it being responded to, but my ethernet driver doesn't see the response.

I've got a really dumb ethernet switch so I don't believe the switch is filtering and like I said it works fine under FreeBSD when I boot that to copy over a new redboot.elf boot image.

In another curious bit I tried putting it into promiscuous mode and it STILL didn't get non-broadcast packets. That is troublesome as well. What is really strange is I can't figure out from the data sheet how I would even PUT the thing in a mode where it ignore packets addressed to it and accepted broadcast packets.

To Nick's point, given that I don't see the packets show up in vt8235_recv() I don't think its the upper levels of the networking code. I'm taking it on faith that if they saw the packet they would put it to use but there is no way for them to see a packet without the _recv() function seeing it first.

The other area that is interesting will be where recv decides it actually has a packet. That will bear further investigation after I get some sleep.

--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


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