[dpdk-dev] [v2] net/i40e: fix SFP X722 not work with FW4.16

Zhang, Xiao xiao.zhang at intel.com
Fri Jul 19 03:14:46 CEST 2019



> -----Original Message-----
> From: Wang, Haiyue
> Sent: Friday, July 19, 2019 9:02 AM
> To: Zhang, Qi Z <qi.z.zhang at intel.com>; Zhang, Xiao <xiao.zhang at intel.com>;
> dev at dpdk.org
> Cc: Xing, Beilei <beilei.xing at intel.com>
> Subject: RE: [v2] net/i40e: fix SFP X722 not work with FW4.16
> 
> > -----Original Message-----
> > From: Zhang, Qi Z
> > Sent: Friday, July 19, 2019 08:57
> > To: Zhang, Xiao <xiao.zhang at intel.com>; dev at dpdk.org
> > Cc: Xing, Beilei <beilei.xing at intel.com>; Wang, Haiyue
> > <haiyue.wang at intel.com>
> > Subject: RE: [v2] net/i40e: fix SFP X722 not work with FW4.16
> >
> >
> >
> > > -----Original Message-----
> > > From: Zhang, Xiao
> > > Sent: Friday, July 19, 2019 6:52 AM
> > > To: dev at dpdk.org
> > > Cc: Xing, Beilei <beilei.xing at intel.com>; Wang, Haiyue
> > > <haiyue.wang at intel.com>; Zhang, Qi Z <qi.z.zhang at intel.com>; Zhang,
> > > Xiao <xiao.zhang at intel.com>
> > > Subject: [v2] net/i40e: fix SFP X722 not work with FW4.16
> >
> > Please add fix line and Cc stable.
> > Fixes: 73cd7d6dc8e1 ("net/i40e: use set switch AQ instead of register
> > setting")
> >
> > >
> > > FW4.16 of SFP X722 does not support setting TPID by
> > > set_switch_config adminq operation, for firmware version less than
> > > 4.16 TPID is set by register instead. For device SFP X722, disable
> > > adminq flag to follow the same path with old firmware version to make it
> work.
> > >
> > > Signed-off-by: Xiao Zhang <xiao.zhang at intel.com>
> > > ---
> > > v2
> > > Unset adminq flag instead of only checking device id when set TPID.
> > > v1
> > > Check device id when setting TPID, use adminq if not SFP X722, else
> > > use register.
> > > ---
> > >  drivers/net/i40e/i40e_ethdev.c | 4 ++++
> > >  1 file changed, 4 insertions(+)
> > >
> > > diff --git a/drivers/net/i40e/i40e_ethdev.c
> > > b/drivers/net/i40e/i40e_ethdev.c index 2b9fc45..2b2c877 100644
> > > --- a/drivers/net/i40e/i40e_ethdev.c
> > > +++ b/drivers/net/i40e/i40e_ethdev.c
> > > @@ -1358,6 +1358,10 @@ eth_i40e_dev_init(struct rte_eth_dev *dev,
> > > void *init_params __rte_unused)
> > >  		PMD_INIT_LOG(ERR, "Failed to init adminq: %d", ret);
> > >  		return -EIO;
> > >  	}
> > > +	/* Firmware of SFP x722 does not support adminq option */
> > > +	if (hw->device_id == I40E_DEV_ID_SFP_X722)
> > > +		hw->flags &= ~I40E_HW_FLAG_802_1AD_CAPABLE;
> > > +
> The commit log says some version like FW4.16 doesn't support ADQ, but this line
> of code means all FW doesn't support ADQ. Which one is right ? :-)

Old versions do not support ADQ and did not use ADQ operation in the code. And new FW with version 4.16 also does not support ADQ neither but used the ADQ operation in the code.
So all FW of SFP X722 do not support ADQ, the commit log may be confuse, I will make it more clear.

> 
> > >  	PMD_INIT_LOG(INFO, "FW %d.%d API %d.%d NVM %02d.%02d.%02d
> eetrack
> > > %04x",
> > >  		     hw->aq.fw_maj_ver, hw->aq.fw_min_ver,
> > >  		     hw->aq.api_maj_ver, hw->aq.api_min_ver,
> > > --
> > > 2.7.4



More information about the dev mailing list