Commit 01bb6129 authored by Sasha Neftin's avatar Sasha Neftin Committed by Tony Nguyen
Browse files

igc: Expose the NVM version



Expose the NVM map version via drvinfo in ethtool
NVM image version is reported as firmware version for i225 device
Minor typo fix - remove space

Signed-off-by: default avatarSasha Neftin <sasha.neftin@intel.com>
Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
parent e6529944
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -217,6 +217,8 @@ struct igc_adapter {
	struct timecounter tc;
	struct timespec64 prev_ptp_time; /* Pre-reset PTP clock */
	ktime_t ptp_reset_start; /* Reset time in clock mono */

	char fw_version[16];
};

void igc_up(struct igc_adapter *adapter);
+1 −0
Original line number Diff line number Diff line
@@ -160,6 +160,7 @@
#define IGC_NVM_RW_REG_START	1    /* Start operation */
#define IGC_NVM_RW_ADDR_SHIFT	2    /* Shift to the address bits */
#define IGC_NVM_POLL_READ	0    /* Flag for polling for read complete */
#define IGC_NVM_DEV_STARTER	5    /* Dev_starter Version */

/* NVM Word Offsets */
#define NVM_CHECKSUM_REG		0x003F
+14 −2
Original line number Diff line number Diff line
@@ -129,10 +129,22 @@ static void igc_ethtool_get_drvinfo(struct net_device *netdev,
				    struct ethtool_drvinfo *drvinfo)
{
	struct igc_adapter *adapter = netdev_priv(netdev);
	struct igc_hw *hw = &adapter->hw;
	u16 nvm_version = 0;

	strscpy(drvinfo->driver, igc_driver_name, sizeof(drvinfo->driver));

	/* NVM image version is reported as firmware version for i225 device */
	hw->nvm.ops.read(hw, IGC_NVM_DEV_STARTER, 1, &nvm_version);

	scnprintf(adapter->fw_version,
		  sizeof(adapter->fw_version),
		  "%x",
		  nvm_version);

	strlcpy(drvinfo->driver,  igc_driver_name, sizeof(drvinfo->driver));
	strscpy(drvinfo->fw_version, adapter->fw_version,
		sizeof(drvinfo->fw_version));

	/* add fw_version here */
	strlcpy(drvinfo->bus_info, pci_name(adapter->pdev),
		sizeof(drvinfo->bus_info));