[U-Boot-Users] Smc91c111 - extra bytes in receive buffer

Yasushi SHOJI yashi at atmark-techno.com
Fri May 21 10:30:35 CEST 2004


At Thu, 20 May 2004 12:41:53 -0400,
Earle Clubb wrote:
> 
> I'm trying to get the smc91c111 driver running, but I'm having trouble when
> reading received packets from the data register.  There always seem to be
> extra bytes between the byte count and the destination address of the
> received packet.  For example, here is the beginning of a received arp
> request:
> 
> 407f 0042 ffff ffff ffff 000a 407f 0042
> ffff ffff ffff 000a 04d0 cd01 0806 0001
> 0800 0604 0001 000a 04d0 cd01 c0a8 0b01
> 
> As you can see, the status word, byte count, destination address, and the
> first two bytes of the source address appear to be duplicated.  Usually the
> data separating the first byte count from the second dest address is six
> words, but it can vary.  Therefore, I'm not able to just trash the extra
> words because I might trash part of the packet as well.

unless LAN91C111 is broken, you, or the protocol stack, can throw away
the broken packet.

what LAN91C111 does is to append two bytes (status word and byte
count) to the data received, so the extra 6 byte you are seeing
_should_ also be in the ethernet frame on the wire. and that frame is
broken. You should use some packet capture tool, ie ethereal, to see
the extra bytes are really on the wire or not.

> Any ideas on why this might be happening?
> 
> Another question: what do the bits in the status word for a receive mean?
> I've looked through the data sheet and appnote96 and can't find any
> definition of the bits.

you can find a section called "receive frame status word", in the data
sheet.

regards,
--
          yashi




More information about the U-Boot mailing list