Help with dropped packets on the LPC e2468

I’m having a problem with dropped packets on the uClinux port of the LPC e248. Whenever I ping the board, I experience significant packet loss, from 10% for the smaller sized packets (like 128, 256), to as much as maybe 50% for packets as large as 1024.

I’ve isolated the problem to just be uClinux drivers, rather than a hardware issue. There is no problem with dropped packets in u-boot, as I can tftp a 6mb file in 4-5 seconds, whereas in uClinux it takes 3-4 minutes to ftp the same 6mb file.

So, I’ve started by looking at the lpc22xx_eth.c file under linux-2.6.x/drivers/net/arm, but haevn’t found anything. I don’t really know what exactly to look for.

Has anybody else experienced this? I’m suspecting maybe a buffer size issue, but have no idea where to start. Help please!

Also, here is hte console output of ethernet driver init. I turned on debug.

lpc22xx_eth_probe

lpc22xx_eth: module ID check succeeded (mac_id= 39022100)

lpc22xx_eth: REG_ETH_MAC1 = 0xCF00; succeeded

lpc22xx_eth: REG_ETH_COMMAND = 0x0038; succeeded

lpc22xx_eth: udelay(10); succeeded

lpc22xx_eth: REG_ETH_MAC1 = 0; succeeded

lpc22xx_eth: RMII mode selectedlpc22xx_eth: phy_init: detected: -1, phy_address: 0

lpc22xx_eth_probe phy_address=0 phy_id=0xffffffff

lpc22xx_eth_probe phy_address=1 phy_id=0x00221619

lpc22xx_eth_setup

eth0: Link down.

eth0: LPC22XX ethernet at 0xffe00000 int=21 10-FullDuplex (00:90:c2:cc:ac:01)

eth0: Micrel PHY at 1