bnx: Implement multiple RX/TX rings and MSI-X support for 5718/57785
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Wed, 17 Apr 2013 14:12:29 +0000 (22:12 +0800)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Fri, 3 May 2013 12:41:07 +0000 (20:41 +0800)
commit695a85868a5ea92533f3cd1ffadb2a97006688dc
tree2200bd9e6d5894b39dfc19e45ae682d2250e1947
parent351eb4526728aab94ec3101d5b83279e798a5c49
bnx: Implement multiple RX/TX rings and MSI-X support for 5718/57785

BCM5718 and BCM57785 families support 4 RX rings and 5 MSI-X vectors.
Additionally BCM5719/BCM5720 support 4 TX rings, while other chips in
these two families only support 1 TX ring.  Each MSI-X vector has its
own interrupt moderation parameters.

Hardware supplied RSS hash and packet type are not utilized yet; they
will be supported in the upcoming commits.

This commit also fixes some RX standard ring refilling races introduced
in:
841cdf08263117c54b0a800440c7630b6913c21e

RX standard ring refilling scheduling may enjoy futher optimization.
sys/conf/options
sys/config/LINT
sys/config/LINT64
sys/dev/netif/bge/if_bgereg.h
sys/dev/netif/bnx/if_bnx.c
sys/dev/netif/bnx/if_bnxvar.h