
-----Original Message----- From: André Schwarz [mailto:andre.schwarz@matrix-vision.de] Sent: Wednesday, August 19, 2009 7:10 AM To: Zang Roy-R61911; Ben Warren Cc: U-Boot List Subject: e1000 Rx timeout with 82541ER
Roy, Ben,
with latest e1000.c my 82541ER connected to a MPC5200 via PCI is no longer working correctly - I get timeouts after few packets. After having a quick look at the code changes it's obvious that I can't figure out the problem quickly since there has been a lot of changes.
**** This is output of today's version :
U-Boot 2009.08-rc2-00025-g2bcbd42-dirty (Aug 19 2009 - 11:28:10)
CPU: MPC5200B v2.2, Core v1.4 at 396 MHz Bus 132 MHz, IPB 132 MHz, PCI 66 MHz Board: Matrix Vision mvBlueCOUGAR-P Net: e1000: 00:0c:8d:40:00:50 e1000#0 ... Random delay: 734 ms... BOOTP broadcast 1 DHCP client bound to address 192.168.65.230 Using e1000#0 device TFTP from server 192.168.64.1; our IP address is 192.168.65.230; sending through gateway 192.168.65.15 Filename '/mvbc-p2625.boot'. Load address: 0x200000 Loading: ###T T T T T T T T T T Retry count exceeded; starting again
**** This is output of v2009.6 :
U-Boot 2009.06-00185-g57fe301-dirty (Jun 22 2009 - 12:07:54)
CPU: MPC5200B v2.2, Core v1.4 at 396 MHz Bus 132 MHz, IPB 132 MHz, PCI 66 MHz Board: Matrix Vision mvBlueCOUGAR-P Net: e1000: 00:0c:8d:40:00:50 e1000#0
Random delay: 815 ms... BOOTP broadcast 1 DHCP client bound to address 192.168.65.230 Using e1000#0 device TFTP from server 192.168.64.1; our IP address is 192.168.65.230; sending through gateway 192.168.65.15 Filename '/mvbc-p2625.boot'. Load address: 0x200000 Loading: ################################################################# ##################################### done Bytes transferred = 1487889 (16b411 hex)
Using drivers/net/e1000.c from v2009.6 gives me back a working NIC, i.e. the problem is likely to be there.
Have you tried some PCI cards after the PCIe changes ?
I have tried 82545EM_COPPER, 82541GI_LF PCI card on 8544DS and 8536DS board.
Any ideas ?
Try to increase tx_pool and rx_pool to see whether there is improment. static char tx_pool[128 + 16]; static char rx_pool[128 + 16];
Change 128 to 256 or 512 to see. How about ping command?
Roy