Trouble with 5.1-RELEASE and Broadcom BCM5704C

Bill Paul wpaul at FreeBSD.ORG
Mon Aug 11 09:56:18 PDT 2003


> Hi,
> 
> I have a problem with the Broadcom BCM5704C (Dual Gigabit Ethernet) which 
> is used by one of our servers (newsfeeder with 5.1-RELEASE and diablo). 
> The interfaces go down frequently if they have traffic (diablo started) 
> and I see the following kernel messages:
> 
> kernel: bge0: watchdog timeout -- resetting
> kernel: bge1: watchdog timeout -- resetting

[...]

The BCM5704 has a smaller memory buffer space than earlier NICs,
and the bge(4) driver up to 5.1-RELEASE failed to take this into
account. I checked in a fix for this to 5-CURRENT and 4-STABLE
yesterday. You can apply the following workaround on your 5.1-RELEASE
systems to fix this (same workaround will work on 4.8-RELEASE as well):

- Bring up /sys/dev/bge/if_bge.c in your favorite editor.
- Search for the following line of code:

		CSR_WRITE_4(sc, BGE_BMAN_MBUFPOOL_LEN, 0x18000);

  It should appear twice in the bge_blockinit() function.
- Change 0x18000 to 0x10000 in both places.
- Recompile your kernel and/or if_bge.ko module.

The fix I made to 4-STABLE and 5-CURRENT does basically the same
thing, but only applies the different value for the 5704 ASIC.

-Bill

--
=============================================================================
-Bill Paul            (510) 749-2329 | Senior Engineer, Master of Unix-Fu
                 wpaul at windriver.com | Wind River Systems
=============================================================================
      "If stupidity were a handicap, you'd have the best parking spot."
=============================================================================


More information about the freebsd-net mailing list