Couple of bug fixes and an update to the release notes. Please apply. Ajit Khaparde (2): net/bnxt: fix to ignore resource qcaps error with older FW doc: update release notes for Broadcom PMD Rahul Gupta (1): net/bnxt: fix jumbo frame configuration in firmware doc/guides/rel_notes/release_19_11.rst | 10 ++++++++++ drivers/net/bnxt/bnxt_ethdev.c | 4 ---- drivers/net/bnxt/bnxt_hwrm.c | 12 ++++++++---- 3 files changed, 18 insertions(+), 8 deletions(-) -- 2.21.0 (Apple Git-122.2)
On some old versions of FW, bnxt_hwrm_func_resc_qcaps can return an error. This is because the command was not implemented completely in FW till the subsequent version. Ignore the error and continue with the driver initialization. Fixes: edafb57ba4a1 ("net/bnxt: fix VF resource allocation") Cc: stable@dpdk.org Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com> --- drivers/net/bnxt/bnxt_hwrm.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c index 2cba007ea..1d3732eee 100644 --- a/drivers/net/bnxt/bnxt_hwrm.c +++ b/drivers/net/bnxt/bnxt_hwrm.c @@ -692,7 +692,12 @@ int bnxt_hwrm_func_qcaps(struct bnxt *bp) bp->flags |= BNXT_FLAG_NEW_RM; } - return rc; + /* On older FW, + * bnxt_hwrm_func_resc_qcaps can fail and cause init failure. + * But the error can be ignored. Return success. + */ + + return 0; } /* VNIC cap covers capability of all VNICs. So no need to pass vnic_id */ @@ -901,7 +906,7 @@ int bnxt_hwrm_func_resc_qcaps(struct bnxt *bp) rc = bnxt_hwrm_send_message(bp, &req, sizeof(req), BNXT_USE_CHIMP_MB); - HWRM_CHECK_RESULT(); + HWRM_CHECK_RESULT_SILENT(); if (BNXT_VF(bp)) { bp->max_rsscos_ctx = rte_le_to_cpu_16(resp->max_rsscos_ctx); -- 2.21.0 (Apple Git-122.2)
From: Rahul Gupta <rahul.gupta@broadcom.com> In order to prevent reconfiguration of firmware resources for every MTU change, configure FW with max MTU value using hwrm_func_cfg to support all frame sizes. There is no need to overwrite the driver level MTU variable data->mtu with the FW MTU. Fixes: 905cd45ce30e ("net/bnxt: use configured MTU during load") Cc: stable@dpdk.org Signed-off-by: Rahul Gupta <rahul.gupta@broadcom.com> Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com> --- drivers/net/bnxt/bnxt_ethdev.c | 4 ---- drivers/net/bnxt/bnxt_hwrm.c | 3 +-- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c index 06033e3b8..b1e831b87 100644 --- a/drivers/net/bnxt/bnxt_ethdev.c +++ b/drivers/net/bnxt/bnxt_ethdev.c @@ -4582,10 +4582,6 @@ static int bnxt_init_fw(struct bnxt *bp) if (rc) bp->flags &= ~BNXT_FLAG_FW_CAP_ERROR_RECOVERY; - if (mtu >= RTE_ETHER_MIN_MTU && mtu <= BNXT_MAX_MTU && - mtu != bp->eth_dev->data->mtu) - bp->eth_dev->data->mtu = mtu; - bnxt_hwrm_port_led_qcaps(bp); return 0; diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c index 1d3732eee..41730089b 100644 --- a/drivers/net/bnxt/bnxt_hwrm.c +++ b/drivers/net/bnxt/bnxt_hwrm.c @@ -2978,8 +2978,7 @@ static int bnxt_hwrm_pf_func_cfg(struct bnxt *bp, int tx_rings) } req.flags = rte_cpu_to_le_32(bp->pf.func_cfg_flags); - req.mtu = rte_cpu_to_le_16(RTE_MIN(bp->eth_dev->data->mtu, - BNXT_MAX_MTU)); //FW adds hdr sizes + req.mtu = rte_cpu_to_le_16(BNXT_MAX_MTU); req.mru = rte_cpu_to_le_16(BNXT_VNIC_MRU(bp->eth_dev->data->mtu)); req.num_rsscos_ctxs = rte_cpu_to_le_16(bp->max_rsscos_ctx); req.num_stat_ctxs = rte_cpu_to_le_16(bp->max_stat_ctx); -- 2.21.0 (Apple Git-122.2)
Update release doc briefly describing updates to bnxt PMD for 19.11 release. Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com> --- doc/guides/rel_notes/release_19_11.rst | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/doc/guides/rel_notes/release_19_11.rst b/doc/guides/rel_notes/release_19_11.rst index 21be600ab..5d70e213e 100644 --- a/doc/guides/rel_notes/release_19_11.rst +++ b/doc/guides/rel_notes/release_19_11.rst @@ -201,6 +201,16 @@ New Features * Enabled zero copy between application mempools and UMEM by enabling the XDP_UMEM_UNALIGNED_CHUNKS UMEM flag. +* **Updated Broadcom bnxt driver.** + + Updated Broadcom bnxt driver with new features and improvements, including: + + * Added support for hot firmware upgrade. + * Added support for error recovery. + * Added support for querying and using COS classification in hardware. + * Added LRO support Thor devices. + * Update HWRM API to version 1.10.1.6 + * **Added Marvell NITROX symmetric crypto PMD.** Added a symmetric crypto PMD for Marvell NITROX V security processor. -- 2.21.0 (Apple Git-122.2)
On Tue, Nov 19, 2019 at 10:57 AM Ajit Khaparde <ajit.khaparde@broadcom.com> wrote: > Couple of bug fixes and an update to the release notes. > Please apply. > > Ajit Khaparde (2): > net/bnxt: fix to ignore resource qcaps error with older FW > doc: update release notes for Broadcom PMD > > Rahul Gupta (1): > net/bnxt: fix jumbo frame configuration in firmware > > doc/guides/rel_notes/release_19_11.rst | 10 ++++++++++ > drivers/net/bnxt/bnxt_ethdev.c | 4 ---- > drivers/net/bnxt/bnxt_hwrm.c | 12 ++++++++---- > 3 files changed, 18 insertions(+), 8 deletions(-) > Patches applied to dpdk-next-net-brcm. Thanks > > -- > 2.21.0 (Apple Git-122.2) > >
On 11/19/2019 6:56 PM, Ajit Khaparde wrote:
> Update release doc briefly describing updates to bnxt PMD for
> 19.11 release.
>
> Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
> ---
> doc/guides/rel_notes/release_19_11.rst | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/doc/guides/rel_notes/release_19_11.rst b/doc/guides/rel_notes/release_19_11.rst
> index 21be600ab..5d70e213e 100644
> --- a/doc/guides/rel_notes/release_19_11.rst
> +++ b/doc/guides/rel_notes/release_19_11.rst
> @@ -201,6 +201,16 @@ New Features
> * Enabled zero copy between application mempools and UMEM by enabling the
> XDP_UMEM_UNALIGNED_CHUNKS UMEM flag.
>
> +* **Updated Broadcom bnxt driver.**
> +
> + Updated Broadcom bnxt driver with new features and improvements, including:
> +
> + * Added support for hot firmware upgrade.
> + * Added support for error recovery.
> + * Added support for querying and using COS classification in hardware.
> + * Added LRO support Thor devices.
> + * Update HWRM API to version 1.10.1.6
> +
Hi Ajit,
For next time, it is better to do the release notes / doc update in the patch
that adds the feature, that helps documenting features better.
Thanks,
ferruh
On 11/20/2019 9:34 AM, Ferruh Yigit wrote:
> On 11/19/2019 6:56 PM, Ajit Khaparde wrote:
>> Update release doc briefly describing updates to bnxt PMD for
>> 19.11 release.
>>
>> Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
>> ---
>> doc/guides/rel_notes/release_19_11.rst | 10 ++++++++++
>> 1 file changed, 10 insertions(+)
>>
>> diff --git a/doc/guides/rel_notes/release_19_11.rst b/doc/guides/rel_notes/release_19_11.rst
>> index 21be600ab..5d70e213e 100644
>> --- a/doc/guides/rel_notes/release_19_11.rst
>> +++ b/doc/guides/rel_notes/release_19_11.rst
>> @@ -201,6 +201,16 @@ New Features
>> * Enabled zero copy between application mempools and UMEM by enabling the
>> XDP_UMEM_UNALIGNED_CHUNKS UMEM flag.
>>
>> +* **Updated Broadcom bnxt driver.**
>> +
>> + Updated Broadcom bnxt driver with new features and improvements, including:
>> +
>> + * Added support for hot firmware upgrade.
>> + * Added support for error recovery.
>> + * Added support for querying and using COS classification in hardware.
>> + * Added LRO support Thor devices.
>> + * Update HWRM API to version 1.10.1.6
>> +
>
> Hi Ajit,
>
> For next time, it is better to do the release notes / doc update in the patch
> that adds the feature, that helps documenting features better.
>
Indeed, similar to .ini file change request, can you please add commits ids
adding these features to the commit log as back reference? I am dropping this
patch while merging for now.
On Wed, Nov 20, 2019 at 1:45 AM Ferruh Yigit <ferruh.yigit@intel.com> wrote:
> On 11/20/2019 9:34 AM, Ferruh Yigit wrote:
> > On 11/19/2019 6:56 PM, Ajit Khaparde wrote:
> >> Update release doc briefly describing updates to bnxt PMD for
> >> 19.11 release.
> >>
> >> Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
> >> ---
> >> doc/guides/rel_notes/release_19_11.rst | 10 ++++++++++
> >> 1 file changed, 10 insertions(+)
> >>
> >> diff --git a/doc/guides/rel_notes/release_19_11.rst
> b/doc/guides/rel_notes/release_19_11.rst
> >> index 21be600ab..5d70e213e 100644
> >> --- a/doc/guides/rel_notes/release_19_11.rst
> >> +++ b/doc/guides/rel_notes/release_19_11.rst
> >> @@ -201,6 +201,16 @@ New Features
> >> * Enabled zero copy between application mempools and UMEM by
> enabling the
> >> XDP_UMEM_UNALIGNED_CHUNKS UMEM flag.
> >>
> >> +* **Updated Broadcom bnxt driver.**
> >> +
> >> + Updated Broadcom bnxt driver with new features and improvements,
> including:
> >> +
> >> + * Added support for hot firmware upgrade.
> >> + * Added support for error recovery.
> >> + * Added support for querying and using COS classification in
> hardware.
> >> + * Added LRO support Thor devices.
> >> + * Update HWRM API to version 1.10.1.6
> >> +
> >
> > Hi Ajit,
> >
> > For next time, it is better to do the release notes / doc update in the
> patch
> > that adds the feature, that helps documenting features better.
> >
>
> Indeed, similar to .ini file change request, can you please add commits ids
> adding these features to the commit log as back reference? I am dropping
> this
> patch while merging for now.
>
Will do. Thanks
Updating bnxt.ini file. These features were added earlier under the following commits. 1) 94d4afd2d167 ("net/bnxt: advertise scatter Rx offload capability") 2) 57d5e5bc86e4 ("net/bnxt: add statistics") 3) 88920136688c ("net/bnxt: support xstats get by id") Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com> --- doc/guides/nics/features/bnxt.ini | 3 +++ 1 file changed, 3 insertions(+) diff --git a/doc/guides/nics/features/bnxt.ini b/doc/guides/nics/features/bnxt.ini index 9721dd61d..37a99e336 100644 --- a/doc/guides/nics/features/bnxt.ini +++ b/doc/guides/nics/features/bnxt.ini @@ -11,6 +11,7 @@ Rx interrupt = Y Queue start/stop = Y MTU update = Y Jumbo frame = Y +Scattered Rx = Y LRO = Y TSO = Y Promiscuous mode = Y @@ -37,9 +38,11 @@ Rx descriptor status = Y Tx descriptor status = Y Basic stats = Y Extended stats = Y +Stats per queue = Y FW version = Y EEPROM dump = Y LED = Y +Multiprocess aware = Y Linux UIO = Y Linux VFIO = Y ARMv8 = Y -- 2.21.0 (Apple Git-122.2)
Update release doc briefly describing updates to bnxt PMD for 19.11 release. The support for these was added in the following commits: 1) b150a7e7ee66 ("net/bnxt: support LRO on Thor adapters") 2) be14720def9c ("net/bnxt: support FW reset") 3) df6cd7c1f73a ("net/bnxt: handle reset notify async event from FW") 4) 698aa7e95325 ("net/bnxt: add code to determine the Tx COS queue") 5) 04102f2ffc8c ("net/bnxt: update HWRM API to version 1.10.1.6") Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com> --- doc/guides/rel_notes/release_19_11.rst | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/doc/guides/rel_notes/release_19_11.rst b/doc/guides/rel_notes/release_19_11.rst index 48c80e5da..53856399d 100644 --- a/doc/guides/rel_notes/release_19_11.rst +++ b/doc/guides/rel_notes/release_19_11.rst @@ -201,6 +201,16 @@ New Features * Enabled zero copy between application mempools and UMEM by enabling the XDP_UMEM_UNALIGNED_CHUNKS UMEM flag. +* **Updated Broadcom bnxt driver.** + + Updated Broadcom bnxt driver with new features and improvements, including: + + * Added support for hot firmware upgrade. + * Added support for error recovery. + * Added support for querying and using COS classification in hardware. + * Added LRO support Thor devices. + * Update HWRM API to version 1.10.1.6 + * **Added Marvell NITROX symmetric crypto PMD.** Added a symmetric crypto PMD for Marvell NITROX V security processor. -- 2.21.0 (Apple Git-122.2)
From: Somnath Kotur <somnath.kotur@broadcom.com> Now that vnics are created only as part of the flow creation cmds and not during init, we cannot rely on iterating only through 'nr_vnics'. We need to sweep all the vnics by using 'max_vnics' otherwise a vnic with a stale 'rx_queue_cnt' might be left lingering post a port stop/start operation. This could lead to a segfault. This change is required because of the recent fix made by commit to "fix flow creation with non-consecutive group ids". Fixes: bab0a1f2ed4b ("net/bnxt: fix flow creation with non-consecutive group ids") Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com> Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com> --- drivers/net/bnxt/bnxt_vnic.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/net/bnxt/bnxt_vnic.c b/drivers/net/bnxt/bnxt_vnic.c index 52a4badfc..104342e13 100644 --- a/drivers/net/bnxt/bnxt_vnic.c +++ b/drivers/net/bnxt/bnxt_vnic.c @@ -75,12 +75,13 @@ struct bnxt_vnic_info *bnxt_alloc_vnic(struct bnxt *bp) void bnxt_free_all_vnics(struct bnxt *bp) { - struct bnxt_vnic_info *temp; + struct bnxt_vnic_info *vnic; unsigned int i; - for (i = 0; i < bp->nr_vnics; i++) { - temp = &bp->vnic_info[i]; - STAILQ_INSERT_TAIL(&bp->free_vnic_list, temp, next); + for (i = 0; i < bp->max_vnics; i++) { + vnic = &bp->vnic_info[i]; + STAILQ_INSERT_TAIL(&bp->free_vnic_list, vnic, next); + vnic->rx_queue_cnt = 0; } } -- 2.21.0 (Apple Git-122.2)
On Thu, Nov 21, 2019 at 3:35 PM Ajit Khaparde <ajit.khaparde@broadcom.com> wrote: > From: Somnath Kotur <somnath.kotur@broadcom.com> > > Now that vnics are created only as part of the flow creation cmds > and not during init, we cannot rely on iterating only through > 'nr_vnics'. We need to sweep all the vnics by using 'max_vnics' > otherwise a vnic with a stale 'rx_queue_cnt' might be left lingering > post a port stop/start operation. This could lead to a segfault. > This change is required because of the recent fix made by commit to > "fix flow creation with non-consecutive group ids". > > Fixes: bab0a1f2ed4b ("net/bnxt: fix flow creation with non-consecutive > group ids") > > Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com> > Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com> > Applied to dpdk-next-net-brcm. > --- > drivers/net/bnxt/bnxt_vnic.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/bnxt/bnxt_vnic.c b/drivers/net/bnxt/bnxt_vnic.c > index 52a4badfc..104342e13 100644 > --- a/drivers/net/bnxt/bnxt_vnic.c > +++ b/drivers/net/bnxt/bnxt_vnic.c > @@ -75,12 +75,13 @@ struct bnxt_vnic_info *bnxt_alloc_vnic(struct bnxt *bp) > > void bnxt_free_all_vnics(struct bnxt *bp) > { > - struct bnxt_vnic_info *temp; > + struct bnxt_vnic_info *vnic; > unsigned int i; > > - for (i = 0; i < bp->nr_vnics; i++) { > - temp = &bp->vnic_info[i]; > - STAILQ_INSERT_TAIL(&bp->free_vnic_list, temp, next); > + for (i = 0; i < bp->max_vnics; i++) { > + vnic = &bp->vnic_info[i]; > + STAILQ_INSERT_TAIL(&bp->free_vnic_list, vnic, next); > + vnic->rx_queue_cnt = 0; > } > } > > -- > 2.21.0 (Apple Git-122.2) > >
Some fixes and enchancements in the core bnxt PMD Somnath Kotur (3): net/bnxt: fix to init/destroy locks only once net/bnxt: fix error path handling of dev start op net/bnxt: check for chip reset in dev stop/close ops drivers/net/bnxt/bnxt.h | 5 + drivers/net/bnxt/bnxt_cpr.c | 2 + drivers/net/bnxt/bnxt_ethdev.c | 225 +++++++++++++++++++-------------- 3 files changed, 135 insertions(+), 97 deletions(-) -- 2.28.0.497.g54e85e7