Date: Sun, 11 Apr 2010 03:15:16 -0600 From: "Erich Jenkins, Fuujin Group Ltd" <erich@fuujingroup.com> To: pyunyh@gmail.com Cc: freebsd-net@freebsd.org, Evgenii Davidov <dado@korolev-net.ru> Subject: Re: Broadcom BCM5701 / HP NC6770 Message-ID: <4BC19324.3050800@fuujingroup.com> In-Reply-To: <4BC12097.4030508@fuujingroup.com> References: <4BBED9A4.3080303@fuujingroup.com> <20100409070147.GA77350@korolev-net.ru> <4BBEE18C.6040204@fuujingroup.com> <20100409173821.GD1085@michelle.cdnetworks.com> <4BC016F3.4020300@fuujingroup.com> <20100410212520.GB6481@michelle.cdnetworks.com> <4BC12097.4030508@fuujingroup.com>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4BC19324.3050800>