Module Name: src
Committed By: msaitoh
Date: Fri Jun 2 08:16:52 UTC 2017
Modified Files:
src/sys/dev/pci/ixgbe: ixgbe.c ixgbe_type.h
Log Message:
- Print NVM Image Version, PHY FW Revision, NVM Map version and OEM NVM
Image version
- s/TrackID/ETrackID/
To generate a diff of this commit:
cvs rdiff -u -r1.87 -r1.88 src/sys/dev/pci/ixgbe/ixgbe.c
cvs rdiff -u -r1.21 -r1.22 src/sys/dev/pci/ixgbe/ixgbe_type.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/pci/ixgbe/ixgbe.c
diff -u src/sys/dev/pci/ixgbe/ixgbe.c:1.87 src/sys/dev/pci/ixgbe/ixgbe.c:1.88
--- src/sys/dev/pci/ixgbe/ixgbe.c:1.87 Fri May 26 09:17:32 2017
+++ src/sys/dev/pci/ixgbe/ixgbe.c Fri Jun 2 08:16:52 2017
@@ -59,7 +59,7 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
/*$FreeBSD: head/sys/dev/ixgbe/if_ix.c 302384 2016-07-07 03:39:18Z sbruno $*/
-/*$NetBSD: ixgbe.c,v 1.87 2017/05/26 09:17:32 msaitoh Exp $*/
+/*$NetBSD: ixgbe.c,v 1.88 2017/06/02 08:16:52 msaitoh Exp $*/
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -466,7 +466,8 @@ ixgbe_attach(device_t parent, device_t d
struct adapter *adapter;
struct ixgbe_hw *hw;
int error = -1;
- u16 csum, high, low;
+ u16 csum, high, low, nvmreg;
+ u8 id;
u32 ctrl_ext;
ixgbe_vendor_info_t *ent;
struct pci_attach_args *pa = aux;
@@ -630,10 +631,75 @@ ixgbe_attach(device_t parent, device_t d
goto err_late;
}
- /* Print the TrackID */
- hw->eeprom.ops.read(hw, IXGBE_TRACKID_H, &high);
- hw->eeprom.ops.read(hw, IXGBE_TRACKID_L, &low);
- aprint_normal_dev(dev, "TrackID %08x\n", ((uint32_t)high << 16) | low);
+ aprint_normal("%s:", device_xname(dev));
+ /* NVM Image Version */
+ switch (hw->mac.type) {
+ case ixgbe_mac_X540:
+ hw->eeprom.ops.read(hw, IXGBE_NVM_IMAGE_VER, &nvmreg);
+ if (nvmreg == 0xffff)
+ break;
+ high = (nvmreg >> 12) & 0x0f;
+ low = (nvmreg >> 4) & 0xff;
+ id = nvmreg & 0x0f;
+ aprint_normal(" NVM Image Version %u.%u ID 0x%x,", high, low,
+ id);
+ break;
+ case ixgbe_mac_X550EM_x:
+ case ixgbe_mac_X550:
+ hw->eeprom.ops.read(hw, IXGBE_NVM_IMAGE_VER, &nvmreg);
+ if (nvmreg == 0xffff)
+ break;
+ high = (nvmreg >> 12) & 0x0f;
+ low = nvmreg & 0xff;
+ aprint_normal(" NVM Image Version %u.%u,", high, low);
+ break;
+ default:
+ break;
+ }
+
+ /* PHY firmware revision */
+ switch (hw->mac.type) {
+ case ixgbe_mac_X540:
+ case ixgbe_mac_X550:
+ hw->eeprom.ops.read(hw, IXGBE_PHYFW_REV, &nvmreg);
+ if (nvmreg == 0xffff)
+ break;
+ high = (nvmreg >> 12) & 0x0f;
+ low = (nvmreg >> 4) & 0xff;
+ id = nvmreg & 0x000f;
+ aprint_normal(" PHY FW Revision %u.%u ID 0x%x,", high, low,
+ id);
+ break;
+ default:
+ break;
+ }
+
+ /* NVM Map version & OEM NVM Image version */
+ switch (hw->mac.type) {
+ case ixgbe_mac_X550:
+ case ixgbe_mac_X550EM_x:
+ hw->eeprom.ops.read(hw, IXGBE_NVM_MAP_VER, &nvmreg);
+ if (nvmreg != 0xffff) {
+ high = (nvmreg >> 12) & 0x0f;
+ low = nvmreg & 0x00ff;
+ aprint_normal(" NVM Map version %u.%02x,", high, low);
+ }
+ hw->eeprom.ops.read(hw, IXGBE_OEM_NVM_IMAGE_VER, &nvmreg);
+ if (nvmreg == 0xffff) {
+ high = (nvmreg >> 12) & 0x0f;
+ low = nvmreg & 0x00ff;
+ aprint_verbose(" OEM NVM Image version %u.%02x,", high,
+ low);
+ }
+ break;
+ default:
+ break;
+ }
+
+ /* Print the ETrackID */
+ hw->eeprom.ops.read(hw, IXGBE_ETRACKID_H, &high);
+ hw->eeprom.ops.read(hw, IXGBE_ETRACKID_L, &low);
+ aprint_normal(" ETrackID %08x\n", ((uint32_t)high << 16) | low);
error = ixgbe_init_hw(hw);
switch (error) {
Index: src/sys/dev/pci/ixgbe/ixgbe_type.h
diff -u src/sys/dev/pci/ixgbe/ixgbe_type.h:1.21 src/sys/dev/pci/ixgbe/ixgbe_type.h:1.22
--- src/sys/dev/pci/ixgbe/ixgbe_type.h:1.21 Fri May 26 08:36:42 2017
+++ src/sys/dev/pci/ixgbe/ixgbe_type.h Fri Jun 2 08:16:52 2017
@@ -31,7 +31,7 @@
******************************************************************************/
/*$FreeBSD: head/sys/dev/ixgbe/ixgbe_type.h 299200 2016-05-06 22:54:56Z pfg $*/
-/*$NetBSD: ixgbe_type.h,v 1.21 2017/05/26 08:36:42 msaitoh Exp $*/
+/*$NetBSD: ixgbe_type.h,v 1.22 2017/06/02 08:16:52 msaitoh Exp $*/
#ifndef _IXGBE_TYPE_H_
#define _IXGBE_TYPE_H_
@@ -2221,13 +2221,17 @@ enum {
#define IXGBE_FW_PTR 0x0F
#define IXGBE_PBANUM0_PTR 0x15
#define IXGBE_PBANUM1_PTR 0x16
+#define IXGBE_NVM_IMAGE_VER 0x18
+#define IXGBE_PHYFW_REV 0x19
#define IXGBE_ALT_MAC_ADDR_PTR 0x37
#define IXGBE_FREE_SPACE_PTR 0X3E
#define IXGBE_SAN_MAC_ADDR_PTR 0x28
+#define IXGBE_NVM_MAP_VER 0x29
+#define IXGBE_OEM_NVM_IMAGE_VER 0x2A
#define IXGBE_DEVICE_CAPS 0x2C
-#define IXGBE_TRACKID_L 0x2d
-#define IXGBE_TRACKID_H 0x2e
+#define IXGBE_ETRACKID_L 0x2D
+#define IXGBE_ETRACKID_H 0x2E
#define IXGBE_SERIAL_NUMBER_MAC_ADDR 0x11
#define IXGBE_PCIE_MSIX_82599_CAPS 0x72
#define IXGBE_MAX_MSIX_VECTORS_82599 0x40