[00/11] add support for BCM57508 controller
mbox series

Message ID 20190602174247.32368-1-lance.richardson@broadcom.com
Headers show
Series
  • add support for BCM57508 controller
Related show

Message

Lance Richardson June 2, 2019, 5:42 p.m. UTC
NOTE: This patch series has dependencies on the "bnxt patchset"
series that is currently under review.

This patch series adds  support to the bnxt PMD for the
BCM57508 Ethernet controller (a.k.a the "Thor" controller).

Patches 1-5 include cleanups and bug fixes for the existing driver.

Patch 6 adds support for "extended" HWRM requests. Extended
HWRM requests are larger in size and use indirection to a
buffer in host memory.

Patch 7 refactors doorbell handling in preparation for 
the doorbell protocol used for Thor.
Patch 8 refactors descriptor ring allocation in preparation
for thor, which requires an additional "notification queue"
ring to be associated with transmit/receive completion rings.

Patch 9 contains the core of the changes needed to support the
thor controller.

Patch 10 adds thor-specific completion coalescing configuration.

Patch 11 adds thor-specific support for RSS.

Lance Richardson (11):
  net/bnxt: endianness conversions in cp ring macros
  net/bnxt: fix ring type macro name usage
  net/bnxt: fix width in stats ctx endian conversion
  net/bnxt: use consistent values for vnic RSS rule
  net/bnxt: reset function earlier in initialization
  net/bnxt: support extended hwrm request sizes
  net/bnxt: refactor doorbell handling
  net/bnxt: refactor ring allocation code
  net/bnxt: add support for thor controller
  net/bnxt: enable completion coalescing for thor
  net/bnxt: enable RSS for thor-based controllers

 drivers/net/bnxt/bnxt.h              |  99 +++-
 drivers/net/bnxt/bnxt_cpr.h          |  44 +-
 drivers/net/bnxt/bnxt_ethdev.c       | 396 ++++++++++++++--
 drivers/net/bnxt/bnxt_hwrm.c         | 683 +++++++++++++++++++++++----
 drivers/net/bnxt/bnxt_hwrm.h         |  16 +-
 drivers/net/bnxt/bnxt_irq.c          |   4 +-
 drivers/net/bnxt/bnxt_ring.c         | 350 ++++++++++----
 drivers/net/bnxt/bnxt_ring.h         |  33 ++
 drivers/net/bnxt/bnxt_rxq.c          |  16 +-
 drivers/net/bnxt/bnxt_rxq.h          |   1 +
 drivers/net/bnxt/bnxt_rxr.c          |  37 +-
 drivers/net/bnxt/bnxt_rxr.h          |   4 +-
 drivers/net/bnxt/bnxt_rxtx_vec_sse.c |   8 +-
 drivers/net/bnxt/bnxt_txq.c          |   2 +-
 drivers/net/bnxt/bnxt_txq.h          |   1 +
 drivers/net/bnxt/bnxt_txr.c          |  29 +-
 drivers/net/bnxt/bnxt_txr.h          |   2 +-
 drivers/net/bnxt/bnxt_vnic.c         |  15 +-
 drivers/net/bnxt/bnxt_vnic.h         |   1 +
 19 files changed, 1474 insertions(+), 267 deletions(-)

Comments

Ferruh Yigit June 7, 2019, 10:48 a.m. UTC | #1
On 6/2/2019 6:42 PM, Lance Richardson wrote:
> NOTE: This patch series has dependencies on the "bnxt patchset"
> series that is currently under review.
> 
> This patch series adds  support to the bnxt PMD for the
> BCM57508 Ethernet controller (a.k.a the "Thor" controller).

Can you please send doc [1] and web page [2] and release notes [3] patches to
document this new device support?

[1]
doc/guides/nics/bnxt.rst

[2]
https://core.dpdk.org/supported/nics/broadcom/

[3]
doc/guides/rel_notes/release_19_08.rst

> 
> Patches 1-5 include cleanups and bug fixes for the existing driver.
> 
> Patch 6 adds support for "extended" HWRM requests. Extended
> HWRM requests are larger in size and use indirection to a
> buffer in host memory.
> 
> Patch 7 refactors doorbell handling in preparation for 
> the doorbell protocol used for Thor.
> Patch 8 refactors descriptor ring allocation in preparation
> for thor, which requires an additional "notification queue"
> ring to be associated with transmit/receive completion rings.
> 
> Patch 9 contains the core of the changes needed to support the
> thor controller.
> 
> Patch 10 adds thor-specific completion coalescing configuration.
> 
> Patch 11 adds thor-specific support for RSS.
> 
> Lance Richardson (11):
>   net/bnxt: endianness conversions in cp ring macros
>   net/bnxt: fix ring type macro name usage
>   net/bnxt: fix width in stats ctx endian conversion
>   net/bnxt: use consistent values for vnic RSS rule
>   net/bnxt: reset function earlier in initialization
>   net/bnxt: support extended hwrm request sizes
>   net/bnxt: refactor doorbell handling
>   net/bnxt: refactor ring allocation code
>   net/bnxt: add support for thor controller
>   net/bnxt: enable completion coalescing for thor
>   net/bnxt: enable RSS for thor-based controllers
Ferruh Yigit June 7, 2019, 10:52 a.m. UTC | #2
On 6/7/2019 11:48 AM, Ferruh Yigit wrote:
> On 6/2/2019 6:42 PM, Lance Richardson wrote:
>> NOTE: This patch series has dependencies on the "bnxt patchset"
>> series that is currently under review.
>>
>> This patch series adds  support to the bnxt PMD for the
>> BCM57508 Ethernet controller (a.k.a the "Thor" controller).
> 
> Can you please send doc [1] and web page [2] and release notes [3] patches to
> document this new device support?
> 
> [1]
> doc/guides/nics/bnxt.rst
> 
> [2]
> https://core.dpdk.org/supported/nics/broadcom/
> 
> [3]
> doc/guides/rel_notes/release_19_08.rst
> 
>>
>> Patches 1-5 include cleanups and bug fixes for the existing driver.
>>
>> Patch 6 adds support for "extended" HWRM requests. Extended
>> HWRM requests are larger in size and use indirection to a
>> buffer in host memory.
>>
>> Patch 7 refactors doorbell handling in preparation for 
>> the doorbell protocol used for Thor.
>> Patch 8 refactors descriptor ring allocation in preparation
>> for thor, which requires an additional "notification queue"
>> ring to be associated with transmit/receive completion rings.
>>
>> Patch 9 contains the core of the changes needed to support the
>> thor controller.
>>
>> Patch 10 adds thor-specific completion coalescing configuration.
>>
>> Patch 11 adds thor-specific support for RSS.
>>
>> Lance Richardson (11):
>>   net/bnxt: endianness conversions in cp ring macros
>>   net/bnxt: fix ring type macro name usage
>>   net/bnxt: fix width in stats ctx endian conversion
>>   net/bnxt: use consistent values for vnic RSS rule
>>   net/bnxt: reset function earlier in initialization
>>   net/bnxt: support extended hwrm request sizes
>>   net/bnxt: refactor doorbell handling
>>   net/bnxt: refactor ring allocation code
>>   net/bnxt: add support for thor controller
>>   net/bnxt: enable completion coalescing for thor
>>   net/bnxt: enable RSS for thor-based controllers
> 
> 

Series applied to dpdk-next-net/master, thanks.

(Please send above requested documentation updates, I will squash them into
patchset if they can make on time (before merged to mainline))
Lance Richardson June 7, 2019, 1:45 p.m. UTC | #3
On Fri, Jun 7, 2019 at 6:52 AM Ferruh Yigit <ferruh.yigit@intel.com> wrote:
>
> On 6/7/2019 11:48 AM, Ferruh Yigit wrote:
> > On 6/2/2019 6:42 PM, Lance Richardson wrote:
> >> NOTE: This patch series has dependencies on the "bnxt patchset"
> >> series that is currently under review.
> >>
> >> This patch series adds  support to the bnxt PMD for the
> >> BCM57508 Ethernet controller (a.k.a the "Thor" controller).
> >
> > Can you please send doc [1] and web page [2] and release notes [3] patches to
> > document this new device support?
> >
> > [1]
> > doc/guides/nics/bnxt.rst
> >
> > [2]
> > https://core.dpdk.org/supported/nics/broadcom/
> >
> > [3]
> > doc/guides/rel_notes/release_19_08.rst
> >
> >>
> >> Patches 1-5 include cleanups and bug fixes for the existing driver.
> >>
> >> Patch 6 adds support for "extended" HWRM requests. Extended
> >> HWRM requests are larger in size and use indirection to a
> >> buffer in host memory.
> >>
> >> Patch 7 refactors doorbell handling in preparation for
> >> the doorbell protocol used for Thor.
> >> Patch 8 refactors descriptor ring allocation in preparation
> >> for thor, which requires an additional "notification queue"
> >> ring to be associated with transmit/receive completion rings.
> >>
> >> Patch 9 contains the core of the changes needed to support the
> >> thor controller.
> >>
> >> Patch 10 adds thor-specific completion coalescing configuration.
> >>
> >> Patch 11 adds thor-specific support for RSS.
> >>
> >> Lance Richardson (11):
> >>   net/bnxt: endianness conversions in cp ring macros
> >>   net/bnxt: fix ring type macro name usage
> >>   net/bnxt: fix width in stats ctx endian conversion
> >>   net/bnxt: use consistent values for vnic RSS rule
> >>   net/bnxt: reset function earlier in initialization
> >>   net/bnxt: support extended hwrm request sizes
> >>   net/bnxt: refactor doorbell handling
> >>   net/bnxt: refactor ring allocation code
> >>   net/bnxt: add support for thor controller
> >>   net/bnxt: enable completion coalescing for thor
> >>   net/bnxt: enable RSS for thor-based controllers
> >
> >
>
> Series applied to dpdk-next-net/master, thanks.
>
> (Please send above requested documentation updates, I will squash them into
> patchset if they can make on time (before merged to mainline))

Hi Ferruh,

I just sent a patch to address the doc and release notes (Ajit had foreseen
the need for those changes already, so they were pretty much ready to go).

The web page already includes NetXtreme-E, which includes BCM57508.
It would probably be better to list individual part numbers for each family,
but that will take longer to turn around.

Thanks,

   Lance
Ferruh Yigit June 7, 2019, 2:13 p.m. UTC | #4
On 6/7/2019 2:45 PM, Lance Richardson wrote:
> On Fri, Jun 7, 2019 at 6:52 AM Ferruh Yigit <ferruh.yigit@intel.com> wrote:
>>
>> On 6/7/2019 11:48 AM, Ferruh Yigit wrote:
>>> On 6/2/2019 6:42 PM, Lance Richardson wrote:
>>>> NOTE: This patch series has dependencies on the "bnxt patchset"
>>>> series that is currently under review.
>>>>
>>>> This patch series adds  support to the bnxt PMD for the
>>>> BCM57508 Ethernet controller (a.k.a the "Thor" controller).
>>>
>>> Can you please send doc [1] and web page [2] and release notes [3] patches to
>>> document this new device support?
>>>
>>> [1]
>>> doc/guides/nics/bnxt.rst
>>>
>>> [2]
>>> https://core.dpdk.org/supported/nics/broadcom/
>>>
>>> [3]
>>> doc/guides/rel_notes/release_19_08.rst
>>>
>>>>
>>>> Patches 1-5 include cleanups and bug fixes for the existing driver.
>>>>
>>>> Patch 6 adds support for "extended" HWRM requests. Extended
>>>> HWRM requests are larger in size and use indirection to a
>>>> buffer in host memory.
>>>>
>>>> Patch 7 refactors doorbell handling in preparation for
>>>> the doorbell protocol used for Thor.
>>>> Patch 8 refactors descriptor ring allocation in preparation
>>>> for thor, which requires an additional "notification queue"
>>>> ring to be associated with transmit/receive completion rings.
>>>>
>>>> Patch 9 contains the core of the changes needed to support the
>>>> thor controller.
>>>>
>>>> Patch 10 adds thor-specific completion coalescing configuration.
>>>>
>>>> Patch 11 adds thor-specific support for RSS.
>>>>
>>>> Lance Richardson (11):
>>>>   net/bnxt: endianness conversions in cp ring macros
>>>>   net/bnxt: fix ring type macro name usage
>>>>   net/bnxt: fix width in stats ctx endian conversion
>>>>   net/bnxt: use consistent values for vnic RSS rule
>>>>   net/bnxt: reset function earlier in initialization
>>>>   net/bnxt: support extended hwrm request sizes
>>>>   net/bnxt: refactor doorbell handling
>>>>   net/bnxt: refactor ring allocation code
>>>>   net/bnxt: add support for thor controller
>>>>   net/bnxt: enable completion coalescing for thor
>>>>   net/bnxt: enable RSS for thor-based controllers
>>>
>>>
>>
>> Series applied to dpdk-next-net/master, thanks.
>>
>> (Please send above requested documentation updates, I will squash them into
>> patchset if they can make on time (before merged to mainline))
> 
> Hi Ferruh,
> 
> I just sent a patch to address the doc and release notes (Ajit had foreseen
> the need for those changes already, so they were pretty much ready to go).

Thanks, I am checking now.

> 
> The web page already includes NetXtreme-E, which includes BCM57508.
> It would probably be better to list individual part numbers for each family,
> but that will take longer to turn around.

If the information in the web (NetXtreme-E) already covers this new controller,
I am good. It is up to you to list individual part numbers or not.