Intel Controllers [Rant]
Jim Thompson
jim at netgate.com
Tue Dec 10 18:13:13 UTC 2013
On Tue, Dec 10, 2013 at 11:47 AM, Mark Felder <feld at freebsd.org> wrote:
> On Mon, Dec 9, 2013, at 18:20, Barney Cordoba wrote:
>> Why is it that every time I get a new MB it has yet-another intel
>> controller on it? How are you supposed to write good drivers that support
>> 9000 different controllers? As much as I appreciate the progression of
>> CPU technology, they
>> would serve the community better by making up their damn minds and just
>> build 1 or 2 controller for each
>> target market.
>>
>
> I'm pretty sure an entirely new driver doesn't need to be written for
> each new controller. I assume like with most things (network cards, wifi
> chips, etc) it's usually a matter of adding its identifier to the driver
> code.
It goes beyond that. In the simplest case, then yes, things are as you say.
But chips have bugs, which require work-arounds, or other slightly
strange stuff.
Case(s) in-point:
The 82575 assigns queues using vectors via a bitmask
The Intel 82576 chip uses a table that essentially consists of 2
columns with 8 rows. The ordering is column-major (like Fortran
arrays).
On 82580 and newer adapters the scheme is similar to 82576, however
instead of ordering column-major, the ordering is row-major (like C or
Pascal).
These chips are all supported via the igb driver.
Some parts supported by the igb driver use MSI-X interrupts, others don't.
On i350, i354, i210, and i211, loopback VLAN packets have the tag byte-swapped.
The list of issues is by no means limited to the above.
Jim
More information about the freebsd-net
mailing list