[U-Boot] Malformed ARP packets

Jerry Van Baren gvb.uboot at gmail.com
Fri Sep 19 03:54:37 CEST 2008


Remi Lefevre wrote:
> Hello,
> 
> I ported U-Boot on my custom MPC8270 board.
> Everything seems to go well but my ARP packets are malformed:

[snip]

> [60 bytes on wire]                                            <- correct
>           correct broadcast  correct mac addr   ARP type
>           ----------------- ------------------ -----------
> 00000000  ff ff ff ff ff ff da b0  4e 0f 0a 26 08 06 00 01  | <- correct
> 00000010  4e 0f 0a 26 08 06 00 01  4e 0f 0a 26 08 06 00 01  | <- malformed
> 00000020  00 00 00 00 00 00 c0 a8  00 01 00 00 00 00 00 00  | <- correct
> 00000030  c0 a8 00 01 00 00 00 00  00 00 00 01              | <- malformed
> 0000003c
> 
> The source mac address seems incorrectly and partially duplicated at
> byte 16. Data is not random, but duplicated or mispositioned.
> 
> I saw the following thread:
> http://lists.denx.de/pipermail/u-boot/2008-January/028159.html
> 
> So I checked and double-checked my SDRAM configuration but cannot
> find anything wrong. I also get the same results in BBI or PBI.

Is this DIMM memory sticks with using SPD configuration or are the SDRAM 
chips soldered to the board?

This really smells of misconfigured SDRAM where your SDRAM *timing* is 
wrong.  It really looks like your DMA engine is latching the "next" bus 
cycle while your SDRAM is still presenting the previous data.  IOW, your 
memory is slower than your SDRAM controller is configured for.

Did you verify the SDRAM databook timing vs. what you configured your 
SDRAM controller to do?  Did the hardware engineer that made the board 
verify your configuration?  Did he give you a good configuration?  If 
so, are you sure it is good??? (never trust the hardware weenies ;-)

Did you read and understand <http://www.denx.de/wiki/view/DULG/SDRAM> ?

If you are sure of the timing, I would suggest you write a simple test 
application that DMAs from flash to RAM and verifies it, DMAs from RAM 
to RAM and verifies it, if possible do two simultaneous DMAs from A->B 
and C->D so that you are exercising the SDRAM pipelining vigorously.

> MII monitoring works correctly:
> => mii dump

This is meaningless for the problem at hand.  The problem is the DMA 
from SDRAM into the ethernet MAC is messed up.  You are messed up before 
the PHY gets in the picture.

[snip]

> Anything I could have forgotten to check ?
> 
> Best regards,
> Rémi Lefevre

In real estate the three most important things are "location, location, 
location."  In engineering, they are "timing, timing, timing."

HTH,
gvb


More information about the U-Boot mailing list