[dpdk-dev] [PATCH v3 3/4] net/ixgbe: add firmware version get

Yang, Qiming qiming.yang at intel.com
Wed Jan 4 10:48:23 CET 2017


Yes,  etrack_id is an unique value. But not all NICs have this value.
I didn't find any value about fw version in fm10k.
I40e is 8 bit too.
firmware-version: 5.04 0x800024ca

-----Original Message-----
From: Yigit, Ferruh 
Sent: Wednesday, January 4, 2017 5:06 PM
To: Yang, Qiming <qiming.yang at intel.com>; dev at dpdk.org; thomas.monjalon at 6wind.com
Cc: Horton, Remy <remy.horton at intel.com>
Subject: Re: [PATCH v3 3/4] net/ixgbe: add firmware version get

On 1/4/2017 2:44 AM, Yang, Qiming wrote:
> You can see the kernel version ethtool, use command 'ethtool -i  <ixgbe NIC name>'
> driver: ixgbe
> version: 4.2.1-k
> firmware-version: 0x61bf0001
> 
> Ixgbe's FW version do not have the major and minor number, and the original purpose of this function is get FW version, so I think it's enough.

Is etrack_id a unique value that defines the FW version on its own?

And is above definition true for all NICs (or at least Intel ones)?
Because I can see i40e is using 4 bit value for etrack_id ?

> 
> -----Original Message-----
> From: Yigit, Ferruh 
> Sent: Tuesday, January 3, 2017 11:04 PM
> To: Yang, Qiming <qiming.yang at intel.com>; dev at dpdk.org; thomas.monjalon at 6wind.com
> Cc: Horton, Remy <remy.horton at intel.com>
> Subject: Re: [PATCH v3 3/4] net/ixgbe: add firmware version get
> 
> On 12/27/2016 12:30 PM, Qiming Yang wrote:
>> This patch add a new function ixgbe_fw_version_get.
>>
>> Signed-off-by: Qiming Yang <qiming.yang at intel.com>
> 
> <...>
> 
>>  
>>  static void
>> +ixgbe_fw_version_get(struct rte_eth_dev *dev, __rte_unused u32 *fw_major,
>> +	__rte_unused u32 *fw_minor, __rte_unused u32 *fw_patch, u32 
>> +*etrack_id)
> 
> This API at least provide major and minor fw versions I think. Isn't there any kind of FW version information for ixgbe? Just providing etrack_id is not looking good.
> 
>> +{
>> +	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>> +	u16 eeprom_verh, eeprom_verl;
>> +
>> +	ixgbe_read_eeprom(hw, 0x2e, &eeprom_verh);
>> +	ixgbe_read_eeprom(hw, 0x2d, &eeprom_verl);
>> +
>> +	*etrack_id = (eeprom_verh << 16) | eeprom_verl; }
>> +
>> +static void
>>  ixgbe_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info 
>> *dev_info)  {
>>  	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
>>
> 



More information about the dev mailing list