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