Broadcom BCM5701 / HP NC6770
Erich Jenkins, Fuujin Group Ltd
erich at fuujingroup.com
Sun Apr 11 08:15:27 UTC 2010
I've been muddling around in src/sys/dev on the old system and the new
system and there appear to be rather major changes to MII and bge,
possibly the whole stack?
There are a number of things that seem to have been merged with other
parts of the network stack, or perhaps written into the individual
drivers (someone working on the net stack would have to verify that).
For instance, some files called in 5.3-REL seem to have gone away
completely, and in the new (unpatched) version of if_bge.c under
7.3-REL, calls to these modules are gone:
- #include <vm/vm.h> /* for vtophys */
- #include <vm/pmap.h> /* for vtophys */
- #include <machine/clock.h> /* for DELAY */
- #include <machine/bus_memio.h>
- #include <dev/pci/pcireg.h> (called but something changed in here)
- #include <dev/pci/pcivar.h> (ditto above)
It appears that the checksum features have been completely rewritten,
and some of the ring settings have changed. It's interesting that the
driver only fills 256 of the rx rings in the hopes that the cpu is "fast
enough to keep up with the NIC". Would a subroutine here to grab the cpu
clock and count (number of procs/pipelines) be more trouble than it's
worth to "automagically" increase the number of rx rings the driver
fills based on the system in which it's installed?
Something also changed in pci/pcireg.h and pci/pcivar.h, but I haven't
had the time to hunt down and expand the source tree from the 5.3-REL
branch yet.
I have other machines with copper nics utilizing the bge driver, and
there are no issues at all. Perhaps I'm getting ahead of things, but
since this seems to have been broken through several releases, would it
make any sense to split the support between the BCM5701KHB chipset and
the more recent BCM chipset to avoid causing issues with cards/systems
not currently experiencing troubles?
Erich M. Jenkins
Fuujin Group Limited
"You should never, never doubt what no one is sure about."
-- Gene Wilder
More information about the freebsd-net
mailing list