Skip to content

Instantly share code, notes, and snippets.

@Chester-Gillon
Last active October 7, 2023 23:01
Show Gist options
  • Save Chester-Gillon/15f27f0338fc9c61117f26cf795586d8 to your computer and use it in GitHub Desktop.
Save Chester-Gillon/15f27f0338fc9c61117f26cf795586d8 to your computer and use it in GitHub Desktop.
Intel X722 usage

0. Introduction

Contains some notes about using an Intel X722-DA2.

1. Initial tests in an Intel® Desktop Board DH67BL

Intel® Desktop Board DH67BL is the manual for the motherboard. Uses a Intel(R) Core(TM) i5-2310 processor.

1.1. Failed to enumerate in the PCIe v2 x16 slot

Initially attempted to plug into the the PCIe v2 x16 slot. However, in that slot failed to enumerate on the PCIe bus. Not visible in the BIOS nor in the lspci output from AlmaLinux 8.

Connected one SFP+ port to a 10G Ethernet switch via a DAC cable and the link came up.

1.2. Did enumerate in a PCIe v2 x1 slot

Plugged into one of the PCIe v2 x1 slots, via an adapter cable so the card secured into the case.

Now enumerated in the BIOS and in AlmaLinux 8:

[mr_halfword@haswell-alma ~]$ sudo lspci -nn -vvv -d 8086:37d0
05:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Connection X722 for 10GbE SFP+ [8086:37d0] (rev 04)
	Subsystem: Intel Corporation Ethernet Network Adapter X722-2 [8086:0002]
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 17
	Region 0: Memory at f1000000 (64-bit, prefetchable) [size=16M]
	Region 3: Memory at f2008000 (64-bit, prefetchable) [size=32K]
	Expansion ROM at fe180000 [disabled] [size=512K]
	Capabilities: [40] Power Management version 3
		Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold-)
		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=1 PME-
	Capabilities: [50] MSI: Enable- Count=1/1 Maskable+ 64bit+
		Address: 0000000000000000  Data: 0000
		Masking: 00000000  Pending: 00000000
	Capabilities: [70] MSI-X: Enable+ Count=129 Masked-
		Vector table: BAR=3 offset=00000000
		PBA: BAR=3 offset=00001000
	Capabilities: [a0] Express (v2) Endpoint, MSI 00
		DevCap:	MaxPayload 512 bytes, PhantFunc 0, Latency L0s <512ns, L1 <64us
			ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 0.000W
		DevCtl:	CorrErr+ NonFatalErr+ FatalErr+ UnsupReq+
			RlxdOrd- ExtTag+ PhantFunc- AuxPwr- NoSnoop- FLReset-
			MaxPayload 128 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr+ NonFatalErr- FatalErr- UnsupReq+ AuxPwr- TransPend-
		LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
			ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
		LnkCtl:	ASPM Disabled; RCB 64 bytes, Disabled- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s (ok), Width x1 (ok)
			TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
		DevCap2: Completion Timeout: Range AB, TimeoutDis+ NROPrPrP- LTR-
			 10BitTagComp- 10BitTagReq- OBFF Not Supported, ExtFmt- EETLPPrefix-
			 EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
			 FRS- TPHComp- ExtTPHComp-
			 AtomicOpsCap: 32bit- 64bit- 128bitCAS-
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LTR- OBFF Disabled,
			 AtomicOpsCtl: ReqEn-
		LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance De-emphasis: -6dB
		LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete- EqualizationPhase1-
			 EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
			 Retimer- 2Retimers- CrosslinkRes: unsupported
	Capabilities: [e0] Vital Product Data
		Product Name: Example VPD
		Read-only fields:
			[V0] Vendor specific: 
			[RV] Reserved: checksum good, 0 byte(s) reserved
		End
	Capabilities: [100 v2] Advanced Error Reporting
		UESta:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UEMsk:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UESvrt:	DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
		CESta:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr-
		CEMsk:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
		AERCap:	First Error Pointer: 00, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn-
			MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
		HeaderLog: 00000000 00000000 00000000 00000000
	Capabilities: [140 v1] Device Serial Number 18-fa-c6-ff-ff-1e-f2-f8
	Capabilities: [150 v1] Alternative Routing-ID Interpretation (ARI)
		ARICap:	MFVC- ACS-, Next Function: 1
		ARICtl:	MFVC- ACS-, Function Group: 0
	Capabilities: [160 v1] Single Root I/O Virtualization (SR-IOV)
		IOVCap:	Migration-, Interrupt Message Number: 000
		IOVCtl:	Enable- Migration- Interrupt- MSE- ARIHierarchy+
		IOVSta:	Migration-
		Initial VFs: 64, Total VFs: 64, Number of VFs: 0, Function Dependency Link: 00
		VF offset: 16, stride: 1, Device ID: 37cd
		Supported Page Size: 00000553, System Page Size: 00000001
		Region 0: Memory at 0000000000000000 (64-bit, prefetchable)
		Region 3: Memory at 0000000000000000 (64-bit, prefetchable)
		VF Migration: offset: 00000000, BIR: 0
	Capabilities: [1a0 v1] Transaction Processing Hints
		Device specific mode supported
		No steering table available
	Capabilities: [1b0 v1] Access Control Services
		ACSCap:	SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-
		ACSCtl:	SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-
	Kernel driver in use: i40e
	Kernel modules: i40e

05:00.1 Ethernet controller [0200]: Intel Corporation Ethernet Connection X722 for 10GbE SFP+ [8086:37d0] (rev 04)
	Subsystem: Intel Corporation Ethernet Network Adapter X722-2 [8086:0002]
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 17
	Region 0: Memory at f0000000 (64-bit, prefetchable) [size=16M]
	Region 3: Memory at f2000000 (64-bit, prefetchable) [size=32K]
	Expansion ROM at fe100000 [disabled] [size=512K]
	Capabilities: [40] Power Management version 3
		Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold-)
		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=1 PME-
	Capabilities: [50] MSI: Enable- Count=1/1 Maskable+ 64bit+
		Address: 0000000000000000  Data: 0000
		Masking: 00000000  Pending: 00000000
	Capabilities: [70] MSI-X: Enable+ Count=129 Masked-
		Vector table: BAR=3 offset=00000000
		PBA: BAR=3 offset=00001000
	Capabilities: [a0] Express (v2) Endpoint, MSI 00
		DevCap:	MaxPayload 512 bytes, PhantFunc 0, Latency L0s <512ns, L1 <64us
			ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 0.000W
		DevCtl:	CorrErr+ NonFatalErr+ FatalErr+ UnsupReq+
			RlxdOrd- ExtTag+ PhantFunc- AuxPwr- NoSnoop- FLReset-
			MaxPayload 128 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr+ NonFatalErr- FatalErr- UnsupReq+ AuxPwr- TransPend-
		LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
			ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
		LnkCtl:	ASPM Disabled; RCB 64 bytes, Disabled- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s (ok), Width x1 (ok)
			TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
		DevCap2: Completion Timeout: Range AB, TimeoutDis+ NROPrPrP- LTR-
			 10BitTagComp- 10BitTagReq- OBFF Not Supported, ExtFmt- EETLPPrefix-
			 EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
			 FRS- TPHComp- ExtTPHComp-
			 AtomicOpsCap: 32bit- 64bit- 128bitCAS-
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LTR- OBFF Disabled,
			 AtomicOpsCtl: ReqEn-
		LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete- EqualizationPhase1-
			 EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
			 Retimer- 2Retimers- CrosslinkRes: unsupported
	Capabilities: [e0] Vital Product Data
		Product Name: Example VPD
		Read-only fields:
			[V0] Vendor specific: 
			[RV] Reserved: checksum good, 0 byte(s) reserved
		End
	Capabilities: [100 v2] Advanced Error Reporting
		UESta:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UEMsk:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UESvrt:	DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
		CESta:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr-
		CEMsk:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
		AERCap:	First Error Pointer: 00, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn-
			MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
		HeaderLog: 00000000 00000000 00000000 00000000
	Capabilities: [140 v1] Device Serial Number 18-fa-c6-ff-ff-1e-f2-f8
	Capabilities: [150 v1] Alternative Routing-ID Interpretation (ARI)
		ARICap:	MFVC- ACS-, Next Function: 0
		ARICtl:	MFVC- ACS-, Function Group: 0
	Capabilities: [160 v1] Single Root I/O Virtualization (SR-IOV)
		IOVCap:	Migration-, Interrupt Message Number: 000
		IOVCtl:	Enable- Migration- Interrupt- MSE- ARIHierarchy-
		IOVSta:	Migration-
		Initial VFs: 64, Total VFs: 64, Number of VFs: 0, Function Dependency Link: 01
		VF offset: 79, stride: 1, Device ID: 37cd
		Supported Page Size: 00000553, System Page Size: 00000001
		Region 0: Memory at 0000000000000000 (64-bit, prefetchable)
		Region 3: Memory at 0000000000000000 (64-bit, prefetchable)
		VF Migration: offset: 00000000, BIR: 0
	Capabilities: [1a0 v1] Transaction Processing Hints
		Device specific mode supported
		No steering table available
	Capabilities: [1b0 v1] Access Control Services
		ACSCap:	SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-
		ACSCtl:	SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-
	Kernel driver in use: i40e
	Kernel modules: i40e

The link capability is only reported as Speed 2.5GT/s, Width x1 which looks odd.

With a single SFP+ port connected to the a 10G Ethernet switch via a DAC cable was able to obtain an IP address via DHCP and communicate over the network.

iWARP RDMA devices are available, and the port connected to the switch is ACTIVE:

[mr_halfword@haswell-alma ~]$ ibv_devinfo 
hca_id:	iwp5s0f0
	transport:			iWARP (1)
	fw_ver:				0.2
	node_guid:			faf2:1eff:fec6:fa18
	sys_image_guid:			faf2:1eff:fec6:fa18
	vendor_id:			0x8086
	vendor_part_id:			14288
	hw_ver:				0x4
	phys_port_cnt:			1
		port:	1
			state:			PORT_DOWN (1)
			max_mtu:		4096 (5)
			active_mtu:		1024 (3)
			sm_lid:			0
			port_lid:		1
			port_lmc:		0x00
			link_layer:		Ethernet

hca_id:	iwp5s0f1
	transport:			iWARP (1)
	fw_ver:				0.2
	node_guid:			faf2:1eff:fec6:fa19
	sys_image_guid:			faf2:1eff:fec6:fa19
	vendor_id:			0x8086
	vendor_part_id:			14288
	hw_ver:				0x4
	phys_port_cnt:			1
		port:	1
			state:			PORT_ACTIVE (4)
			max_mtu:		4096 (5)
			active_mtu:		1024 (3)
			sm_lid:			0
			port_lid:		1
			port_lmc:		0x00
			link_layer:		Ethernet

1.3. Firmware

Following How to Check the Firmware Version of Intel® Ethernet Adapters under Linux* OS ethool -i under AlmaLinux 8 reports both ports have firmware-version: 4.00 0x80001571 1.1999.0.

1.3.1. Initial attempt to update firmware failed under AlmaLinux 8

Non-Volatile Memory (NVM) Update Utility for Intel® Ethernet Network Adapter 700 Series has a link to 700Series_NVMUpdatePackage_v9_30.zip which the current latest update utlity version.

Tried running under AlmaLinux 8.8 with a 4.18.0-477.27.1.el8_8.x86_64 Kernel.

Attempting to run nvmupdate64e from 700Series_NVMUpdatePackage_v9_30_Linux initially failed with a cryptic error message about an invalid configuration file:

[mr_halfword@haswell-alma Linux_x64]$ pwd
/home/mr_halfword/Downloads/700Series_NVMUpdatePackage_v9_30_Linux/700Series/Linux_x64
[mr_halfword@haswell-alma Linux_x64]$ sudo ./nvmupdate64e 

Intel(R) Ethernet NVM Update Tool
NVMUpdate version 1.39.56.8
Copyright(C) 2013 - 2023 Intel Corporation.


WARNING: To avoid damage to your device, do not stop the update or reboot or power off the system during this update.
Inventory in progress. Please wait [******....]
Tool execution completed with the following status: The configuration file could not be opened/read, or a syntax error was discovered in the file.
Press any key to exit.

Adding the -l logging option reported more information:

[mr_halfword@haswell-alma Linux_x64]$ sudo ./nvmupdate64e -l

Intel(R) Ethernet NVM Update Tool
NVMUpdate version 1.39.56.8
Copyright(C) 2013 - 2023 Intel Corporation.


WARNING: To avoid damage to your device, do not stop the update or reboot or power off the system during this update.
Config file read.
Unsupported device found - DeviceId: 1503.
Config file doesn't have any OROM components specified for device 'X722'. Tool will use current device's combo set for the OROM update.
Unsupported OROM Combo Image for device 8086-37D0-8086-2.
	 CLP_LOADER IMAGE_SHARED_40G PXE ISCSI_SETUP ISCSI EFI
Allowed OROM Combo Images:
	 PXE
	 EFI
	 EFI PXE

Tool execution completed with the following status: The configuration file could not be opened/read, or a syntax error was discovered in the file.
Press any key to exit.

1.3.2. Attempt to update firmware under Windows 10 also failed

Rebooted the PC into Windows 10 Pro 22H2. Initially after boot the only Ethernet connection was one SFP+ port on the X722-DA2. In that state no drivers were available for the X722.

The combination of connecting the 1Gbe on-board Ethernet to get internet access and "Search automatically for drivers" triggered drivers to be loaded. The X722 port connected to the switch obtained an IP address using DHCP.

Under Windows using 700Series_NVMUpdatePackage_v9_30_Windows got the same error attempting to update the firmware as under AlmaLinux:

C:\Users\mr_halfword\Downloads\700Series_NVMUpdatePackage_v9_30\700Series_NVMUpdatePackage_v9_30_Windows\700Series_NVMUpdatePackage_v9_30_Windows\700Series\Winx64>nvmupdatew64e.exe -l

Intel(R) Ethernet NVM Update Tool
NVMUpdate version 1.39.56.8
Copyright(C) 2013 - 2023 Intel Corporation.


WARNING: To avoid damage to your device, do not stop the update or reboot or power off the system during this update.
Config file read.
Unsupported device found - DeviceId: 1503.
Config file doesn't have any OROM components specified for device 'X722'. Tool will use current device's combo set for the OROM update.
Unsupported OROM Combo Image for device 8086-37D0-8086-2.
         CLP_LOADER IMAGE_SHARED_40G PXE ISCSI_SETUP ISCSI EFI
Allowed OROM Combo Images:
         PXE
         EFI
         EFI PXE

Tool execution completed with the following status: The configuration file could not be opened/read, or a syntax error was discovered in the file.
Press any key to exit.

1.3.3. Can ignore "Unsupported device found - DeviceId: 1503" messages

Both above attempts under AlmaLinux and Windows reported Unsupported device found - DeviceId: 1503 messages. The on-board 1Gbe Ethernet device in the PC is "00:19.0 Ethernet controller [0200]: Intel Corporation 82579V Gigabit Network Connection [8086:1503] (rev 05)". I.e. is just that the nvmupdatew64e utility for 700 series device has found an unsupported Intel Ethernet adapter from a difference series.

Using the -location 0:5 option tells nvmupdatew64e to only process the devices in the slot with the X722, and therefore suppress the Unsupported device found message.

1.3.4. Can collect inventory

In 700Series_NVMUpdatePackage_v9_30_Linux obtained the inventory using:

[mr_halfword@haswell-alma Linux_x64]$ sudo ./nvmupdate64e -location 0:5 -l -i

Intel(R) Ethernet NVM Update Tool
NVMUpdate version 1.39.56.8
Copyright(C) 2013 - 2023 Intel Corporation.

Config file will not be read.
Inventory
[00:005:00:00]: Intel(R) Ethernet Network Adapter X722-2
	Flash inventory started.
	Shadow RAM inventory started.
	Shadow RAM inventory finished.
	Flash inventory finished.
	OROM inventory started.
	OROM inventory finished.
[00:005:00:01]: Intel(R) Ethernet Network Adapter X722-2
	Device already inventoried.
[00:005:00:00]: Intel(R) Ethernet Network Adapter X722-2
	Vendor                 : 8086
	Device                 : 37D0
	Subvendor              : 8086
	Subdevice              : 0002
	Revision               : 4
	LAN MAC                : F8F21EC6FA18
	Alt MAC                : 000000000000
	SAN MAC                : FFFFFFFFFFFF
	ETrackId               : 80001571
	SerialNumber           : 18FAC6FFFF1EF2F8
	NVM Version            : 4.00(4.00)
	PBA                    : K20564-001
	VPD status             : Valid
	VPD size               : 25
	NVM update             : No config file entry
	  checksum             : Valid
	OROM update            : No config file entry
	  CIVD                 : 1.1999.0
	  PXE                  : 1.1.2, checksum Not Relevant
	  ISCSI                : 3.1.55, checksum Not Relevant
	  EFI                  : 3.3.37, checksum None
	  SMCLP                : 3.1.13, checksum Valid
[00:005:00:01]: Intel(R) Ethernet Network Adapter X722-2
	Vendor                 : 8086
	Device                 : 37D0
	Subvendor              : 8086
	Subdevice              : 0002
	Revision               : 4
	LAN MAC                : F8F21EC6FA19
	Alt MAC                : 000000000000
	SAN MAC                : FFFFFFFFFFFF
	ETrackId               : 80001571
	SerialNumber           : 18FAC6FFFF1EF2F8
	NVM Version            : 4.00(4.00)
	PBA                    : K20564-001
	VPD status             : Valid
	VPD size               : 25
	NVM update             : No config file entry
	  checksum             : Valid
	OROM update            : No config file entry
	  CIVD                 : 1.1999.0
	  PXE                  : 1.1.2, checksum Not Relevant
	  ISCSI                : 3.1.55, checksum Not Relevant
	  EFI                  : 3.3.37, checksum None
	  SMCLP                : 3.1.13, checksum Valid

1.3.5. Update might be broken in 700Series_NVMUpdatePackage_v9_30

The ETrackId of the installed firmware is 80001571. In the nvmupdate.cfg file in 700Series_NVMUpdatePackage_v9_30_Linux there is an entry for the X722 for firmware which replaces the installed ETrackId:

;X722
BEGIN DEVICE
DEVICENAME: X722
VENDOR: 8086
DEVICE: 37D0
NVM IMAGE: LBG_B2_6p20_CF_2x10G.bin
EEPID: 80003D82
REPLACES: 80001571 80001A3C 80001DEF 8000207F 800023C3 8000265A 8000275D 80002A29 80002E3F 80003327 800035CB 800039EC
OROM IMAGE: BootIMG.FLB
EEPROM MAP: iSCSI.txt
RESET TYPE: REBOOT
END DEVICE

The LBG_B2_6p20_CF_2x10G.bin, BootIMG.FLB and iSCSI.txt files exist in the same directory.

X710-DA2 Update not working - Unsupported OROM Combo Image was reported for a X710-DA2, and says the update worked using v9.10 but not with v9.20 or v9.30.

700Series_NVMUpdatePackage_v9_20_Linux also fails:

[mr_halfword@haswell-alma Linux_x64]$ sudo ./nvmupdate64e -location 0:5 -l -u -b 
[sudo] password for mr_halfword: 

Intel(R) Ethernet NVM Update Tool
NVMUpdate version 1.39.32.6
Copyright(C) 2013 - 2023 Intel Corporation.

Config file read.
Config file doesn't have any OROM components specified for device 'X722'. Tool will use current device's combo set for the OROM update.
Unsupported OROM Combo Image for device 8086-37D0-8086-2.
	 CLP_LOADER IMAGE_SHARED_40G PXE ISCSI_SETUP ISCSI EFI
Allowed OROM Combo Images:
	 PXE
	 EFI
	 EFI PXE

1.3.6. Update worked in 700Series_NVMUpdatePackage_v9_10_Linux

Tried the older v9.10 update package, and the backup and update of the firmware then completed:

[mr_halfword@haswell-alma Linux_x64]$ pwd
/home/mr_halfword/Downloads/700Series_NVMUpdatePackage_v9_10/700Series_NVMUpdatePackage_v9_10_Linux/700Series/Linux_x64
[mr_halfword@haswell-alma Linux_x64]$ sudo ./nvmupdate64e -location 0:5 -l -u -b
 
Intel(R) Ethernet NVM Update Tool
NVMUpdate version 1.39.20.2
Copyright(C) 2013 - 2022 Intel Corporation.

Config file read.
Config file doesn't have any OROM components specified for device 'X722'. Tool will use current device's combo set for the OROM update.
Config file doesn't have any OROM components specified for device 'X722'. Tool will use current device's combo set for the OROM update.
Inventory
[00:005:00:00]: Intel(R) Ethernet Network Adapter X722-2
	Flash inventory started.
	Shadow RAM inventory started.
	Shadow RAM inventory finished.
	Flash inventory finished.
	OROM inventory started.
	OROM inventory finished.
[00:005:00:01]: Intel(R) Ethernet Network Adapter X722-2
	Device already inventoried.
Update
[00:005:00:00]: Intel(R) Ethernet Network Adapter X722-2
	Creating backup images in directory: F8F21EC6FA18.
	Backup images created.
	Flash update started.
|======================[100%]======================|
	NVM verification started.
	Shadow RAM verification started.
|======================[100%]======================|
	Shadow RAM verification finished.
	Flash verification started.
|======================[100%]======================|
	Flash verification finished.
	NVM verification finished.
	Flash update successful.
	OROM update started.
|======================[100%]======================|
	OROM verification started.
|======================[100%]======================|
	OROM verification finished.
	OROM update successful.
	Device update successful.
Update security revisions
[00:005:00:00]: Intel(R) Ethernet Network Adapter X722-2
	Skipping update minimum security revisions.
Update VPD with VPD template
[00:005:00:00]: Intel(R) Ethernet Network Adapter X722-2
	Skipping VPD update with VPD template.
Checking update availability for next tool run.
Config file doesn't have any OROM components specified for device 'X722'. Tool will use current device's combo set for the OROM update.
Config file doesn't have any OROM components specified for device 'X722'. Tool will use current device's combo set for the OROM update.
Reboot is required to complete the update process.

The contents of the backup directory after the update:

[mr_halfword@haswell-alma Linux_x64]$ sudo chmod o+rx  F8F21EC6FA18/
[mr_halfword@haswell-alma Linux_x64]$ ls -l F8F21EC6FA18/
total 6264
-r--------. 1 root root 6004736 Oct  4 10:20 F8F21EC6FA18.bin
-r--------. 1 root root  406225 Oct  4 10:20 F8F21EC6FA18.flb

Power cycled after the update. ibv_devinfo showed no change in the reported fw_ver:

[mr_halfword@haswell-alma ~]$ ibv_devinfo 
hca_id:	iwp5s0f0
	transport:			iWARP (1)
	fw_ver:				0.2
	node_guid:			faf2:1eff:fec6:fa18
	sys_image_guid:			faf2:1eff:fec6:fa18
	vendor_id:			0x8086
	vendor_part_id:			14288
	hw_ver:				0x4
	phys_port_cnt:			1
		port:	1
			state:			PORT_ACTIVE (4)
			max_mtu:		4096 (5)
			active_mtu:		1024 (3)
			sm_lid:			0
			port_lid:		1
			port_lmc:		0x00
			link_layer:		Ethernet

hca_id:	iwp5s0f1
	transport:			iWARP (1)
	fw_ver:				0.2
	node_guid:			faf2:1eff:fec6:fa19
	sys_image_guid:			faf2:1eff:fec6:fa19
	vendor_id:			0x8086
	vendor_part_id:			14288
	hw_ver:				0x4
	phys_port_cnt:			1
		port:	1
			state:			PORT_ACTIVE (4)
			max_mtu:		4096 (5)
			active_mtu:		1024 (3)
			sm_lid:			0
			port_lid:		1
			port_lmc:		0x00
			link_layer:		Ethernet

ethtool -i showing the firmware-version is now 6.00 0x800039ec 1.3179.0. Where the following fields have changed:

Field Before update After update
NVM version 4.00 6.00
EtrackID 0x80001571 0x800039ec
Combo Boot Image version 1.1999.0 1.3179.0

The inventory after the update:

[mr_halfword@haswell-alma ~]$ sudo ~/Downloads/700Series_NVMUpdatePackage_v9_30_Linux/700Series/Linux_x64/nvmupdate64e -location 0:5 -l -i
[sudo] password for mr_halfword: 

Intel(R) Ethernet NVM Update Tool
NVMUpdate version 1.39.56.8
Copyright(C) 2013 - 2023 Intel Corporation.

Config file will not be read.
Inventory
[00:005:00:00]: Intel(R) Ethernet Network Adapter X722-2
	Flash inventory started.
	Shadow RAM inventory started.
	Shadow RAM inventory finished.
	Flash inventory finished.
	OROM inventory started.
	OROM inventory finished.
[00:005:00:01]: Intel(R) Ethernet Network Adapter X722-2
	Device already inventoried.
[00:005:00:00]: Intel(R) Ethernet Network Adapter X722-2
	Vendor                 : 8086
	Device                 : 37D0
	Subvendor              : 8086
	Subdevice              : 0002
	Revision               : 4
	LAN MAC                : F8F21EC6FA18
	Alt MAC                : 000000000000
	SAN MAC                : FFFFFFFFFFFF
	ETrackId               : 800039EC
	SerialNumber           : 18FAC6FFFF1EF2F8
	NVM Version            : 6.00(6.00)
	PBA                    : K20564-001
	VPD status             : Valid
	VPD size               : 25
	NVM update             : No config file entry
	  checksum             : Valid
	OROM update            : No config file entry
	  CIVD                 : 1.3179.0
	  PXE                  : 1.1.42, checksum Not Relevant
	  ISCSI                : 3.1.80, checksum Not Relevant
	  EFI                  : 4.9.13, checksum None
	  SMCLP                : 3.1.30, checksum Valid
[00:005:00:01]: Intel(R) Ethernet Network Adapter X722-2
	Vendor                 : 8086
	Device                 : 37D0
	Subvendor              : 8086
	Subdevice              : 0002
	Revision               : 4
	LAN MAC                : F8F21EC6FA19
	Alt MAC                : 000000000000
	SAN MAC                : FFFFFFFFFFFF
	ETrackId               : 800039EC
	SerialNumber           : 18FAC6FFFF1EF2F8
	NVM Version            : 6.00(6.00)
	PBA                    : K20564-001
	VPD status             : Valid
	VPD size               : 25
	NVM update             : No config file entry
	  checksum             : Valid
	OROM update            : No config file entry
	  CIVD                 : 1.3179.0
	  PXE                  : 1.1.42, checksum Not Relevant
	  ISCSI                : 3.1.80, checksum Not Relevant
	  EFI                  : 4.9.13, checksum None
	  SMCLP                : 3.1.30, checksum Valid

1.3.7. Still unable to perform an update using 700Series_NVMUpdatePackage_v9_10_Linux

The nvmupdate.cfg in 700Series_NVMUpdatePackage_v9_20 and 700Series_NVMUpdatePackage_v9_30_Linux both contain EEPID 80003D82 which should replace the 800039EC installed with the v9.10 update.

However, attempting to use the v9.20 or v9.30 update still fails with Unsupported OROM Combo Image for device 8086-37D0-8086-2. E.g.:

[mr_halfword@haswell-alma Linux_x64]$ cd ~/Downloads/700Series_NVMUpdatePackage_v9_30_Linux/700Series/Linux_x64/
[mr_halfword@haswell-alma Linux_x64]$ sudo ./nvmupdate64e -location 0:5 -l -u -b
[sudo] password for mr_halfword: 
Sorry, try again.
[sudo] password for mr_halfword: 

Intel(R) Ethernet NVM Update Tool
NVMUpdate version 1.39.56.8
Copyright(C) 2013 - 2023 Intel Corporation.

Config file read.
Config file doesn't have any OROM components specified for device 'X722'. Tool will use current device's combo set for the OROM update.
Unsupported OROM Combo Image for device 8086-37D0-8086-2.
	 CLP_LOADER IMAGE_SHARED_40G PXE ISCSI_SETUP ISCSI EFI
Allowed OROM Combo Images:
	 PXE
	 EFI
	 EFI PXE

2. Move to HP Z4 PC

Following the update of the firmware, the X722-DA2 still didn't enumerate when fitted to the PCIe 2 x16 slot in the DH67BL.

Moved the board in slot 5 on a HP Z4 with a Xeon W, where slot 5 is PCle3 x8. Looking in the BIOS at Slot Settings shows:

  • Slot 5 PCI Express x8 : Enable
  • Option ROM download : Enable
  • Current PCIe speed : Gen3 (8 Gbps)
  • Birfuruaction : Auto
  • Resizable BARs : Disable

Initially was getting confused about why the X722 endpoint had it's link as Current speed 2.5 GT/s Width x1. After updating dump_info_libpciaccess to report the PCIe link capabilities by following the bridges from the endpoint to the PCIe root port realised the X722-DA2 is showing bridges inside itself:

$ bin/debug/dump_info/dump_info_libpciaccess 8086 37d0
domain=0000 bus=2f dev=00 func=00
  vendor_id=8086 (Intel Corporation) device_id=37d0 (Ethernet Connection X722 for 10GbE SFP+) subvendor_id=8086 subdevice_id=0002
  control: I/O- Mem+ BusMaster-
  bar[0] base_addr=38fffe000000 size=1000000 is_IO=0 is_prefetchable=1 is_64=1
  bar[3] base_addr=38ffff008000 size=8000 is_IO=0 is_prefetchable=1 is_64=1
  Capabilities: [40] Power Management
  Capabilities: [50] Message Signaled Interrupts
  Capabilities: [70] MSI-X
  Capabilities: [a0] PCI Express v2 Express Endpoint, MSI 0
    Link capabilities: Max speed 2.5 GT/s Max width x1
    Negotiated link status: Current speed 2.5 GT/s Width x1
    Link capabilities2: Not implemented
  Capabilities: [e0] Vital Product Data
  domain=0000 bus=2e dev=03 func=00
    vendor_id=8086 (Intel Corporation) device_id=37c5 ((null)) subvendor_id=8086 subdevice_id=0001
    control: I/O+ Mem+ BusMaster+
    Capabilities: [40] PCI Express v2 Downstream Port, MSI 0
      Link capabilities: Max speed 2.5 GT/s Max width x1
      Negotiated link status: Current speed 2.5 GT/s Width x1
      Link capabilities2: Supported link speeds 2.5 GT/s
    Capabilities: [80] Power Management
    Capabilities: [88] Bridge subsystem vendor/device ID
    domain=0000 bus=2d dev=00 func=00
      vendor_id=8086 (Intel Corporation) device_id=37c0 ((null)) subvendor_id=8086 subdevice_id=0001
      control: I/O+ Mem+ BusMaster+
      bar[0] base_addr=97900000 size=20000 is_IO=0 is_prefetchable=0 is_64=1
      Capabilities: [40] PCI Express v2 Upstream Port, MSI 0
        Link capabilities: Max speed 8.0 GT/s Max width x16
        Negotiated link status: Current speed 8.0 GT/s Width x8
        Link capabilities2: Supported link speeds 2.5 GT/s 5.0 GT/s 8.0 GT/s
      Capabilities: [80] Power Management
      Capabilities: [88] Bridge subsystem vendor/device ID
      domain=0000 bus=2c dev=00 func=00
        vendor_id=8086 (Intel Corporation) device_id=2030 (Sky Lake-E PCI Express Root Port A) subvendor_id=8086 subdevice_id=0000
        control: I/O+ Mem+ BusMaster+
        Capabilities: [40] Bridge subsystem vendor/device ID
        Capabilities: [60] Message Signaled Interrupts
        Capabilities: [90] PCI Express v2 Root Port, MSI 0
          Link capabilities: Max speed 8.0 GT/s Max width x8
          Negotiated link status: Current speed 8.0 GT/s Width x8
          Link capabilities2: Supported link speeds 2.5 GT/s 5.0 GT/s 8.0 GT/s
        Capabilities: [e0] Power Management

domain=0000 bus=2f dev=00 func=01
  vendor_id=8086 (Intel Corporation) device_id=37d0 (Ethernet Connection X722 for 10GbE SFP+) subvendor_id=8086 subdevice_id=0002
  control: I/O- Mem+ BusMaster-
  bar[0] base_addr=38fffd000000 size=1000000 is_IO=0 is_prefetchable=1 is_64=1
  bar[3] base_addr=38ffff000000 size=8000 is_IO=0 is_prefetchable=1 is_64=1
  Capabilities: [40] Power Management
  Capabilities: [50] Message Signaled Interrupts
  Capabilities: [70] MSI-X
  Capabilities: [a0] PCI Express v2 Express Endpoint, MSI 0
    Link capabilities: Max speed 2.5 GT/s Max width x1
    Negotiated link status: Current speed 2.5 GT/s Width x1
    Link capabilities2: Not implemented
  Capabilities: [e0] Vital Product Data
  domain=0000 bus=2e dev=03 func=00
    vendor_id=8086 (Intel Corporation) device_id=37c5 ((null)) subvendor_id=8086 subdevice_id=0001
    control: I/O+ Mem+ BusMaster+
    Capabilities: [40] PCI Express v2 Downstream Port, MSI 0
      Link capabilities: Max speed 2.5 GT/s Max width x1
      Negotiated link status: Current speed 2.5 GT/s Width x1
      Link capabilities2: Supported link speeds 2.5 GT/s
    Capabilities: [80] Power Management
    Capabilities: [88] Bridge subsystem vendor/device ID
    domain=0000 bus=2d dev=00 func=00
      vendor_id=8086 (Intel Corporation) device_id=37c0 ((null)) subvendor_id=8086 subdevice_id=0001
      control: I/O+ Mem+ BusMaster+
      bar[0] base_addr=97900000 size=20000 is_IO=0 is_prefetchable=0 is_64=1
      Capabilities: [40] PCI Express v2 Upstream Port, MSI 0
        Link capabilities: Max speed 8.0 GT/s Max width x16
        Negotiated link status: Current speed 8.0 GT/s Width x8
        Link capabilities2: Supported link speeds 2.5 GT/s 5.0 GT/s 8.0 GT/s
      Capabilities: [80] Power Management
      Capabilities: [88] Bridge subsystem vendor/device ID
      domain=0000 bus=2c dev=00 func=00
        vendor_id=8086 (Intel Corporation) device_id=2030 (Sky Lake-E PCI Express Root Port A) subvendor_id=8086 subdevice_id=0000
        control: I/O+ Mem+ BusMaster+
        Capabilities: [40] Bridge subsystem vendor/device ID
        Capabilities: [60] Message Signaled Interrupts
        Capabilities: [90] PCI Express v2 Root Port, MSI 0
          Link capabilities: Max speed 8.0 GT/s Max width x8
          Negotiated link status: Current speed 8.0 GT/s Width x8
          Link capabilities2: Supported link speeds 2.5 GT/s 5.0 GT/s 8.0 GT/s
        Capabilities: [e0] Power Management

Compared to a ConnectX-4 Lx which is also a multi-function device, but doesn't contain and internal bridges:

$ bin/debug/dump_info/dump_info_libpciaccess 15b3
domain=0000 bus=21 dev=00 func=00
  vendor_id=15b3 (Mellanox Technologies) device_id=1015 (MT27710 Family [ConnectX-4 Lx]) subvendor_id=15b3 subdevice_id=0004
  control: I/O- Mem+ BusMaster+
  bar[0] base_addr=38bffe000000 size=2000000 is_IO=0 is_prefetchable=1 is_64=1
  Capabilities: [60] PCI Express v2 Express Endpoint, MSI 0
    Link capabilities: Max speed 8.0 GT/s Max width x8
    Negotiated link status: Current speed 8.0 GT/s Width x8
    Link capabilities2: Supported link speeds 2.5 GT/s 5.0 GT/s 8.0 GT/s
  Capabilities: [48] Vital Product Data
  Capabilities: [9c] MSI-X
  Capabilities: [c0] Vendor specific
  Capabilities: [40] Power Management
  domain=0000 bus=20 dev=00 func=00
    vendor_id=8086 (Intel Corporation) device_id=2030 (Sky Lake-E PCI Express Root Port A) subvendor_id=8086 subdevice_id=0000
    control: I/O+ Mem+ BusMaster+
    Capabilities: [40] Bridge subsystem vendor/device ID
    Capabilities: [60] Message Signaled Interrupts
    Capabilities: [90] PCI Express v2 Root Port, MSI 0
      Link capabilities: Max speed 8.0 GT/s Max width x16
      Negotiated link status: Current speed 8.0 GT/s Width x8
      Link capabilities2: Supported link speeds 2.5 GT/s 5.0 GT/s 8.0 GT/s
    Capabilities: [e0] Power Management

domain=0000 bus=21 dev=00 func=01
  vendor_id=15b3 (Mellanox Technologies) device_id=1015 (MT27710 Family [ConnectX-4 Lx]) subvendor_id=15b3 subdevice_id=0004
  control: I/O- Mem+ BusMaster+
  bar[0] base_addr=38bffc000000 size=2000000 is_IO=0 is_prefetchable=1 is_64=1
  Capabilities: [60] PCI Express v2 Express Endpoint, MSI 0
    Link capabilities: Max speed 8.0 GT/s Max width x8
    Negotiated link status: Current speed 8.0 GT/s Width x8
    Link capabilities2: Supported link speeds 2.5 GT/s 5.0 GT/s 8.0 GT/s
  Capabilities: [48] Vital Product Data
  Capabilities: [9c] MSI-X
  Capabilities: [c0] Vendor specific
  Capabilities: [40] Power Management
  domain=0000 bus=20 dev=00 func=00
    vendor_id=8086 (Intel Corporation) device_id=2030 (Sky Lake-E PCI Express Root Port A) subvendor_id=8086 subdevice_id=0000
    control: I/O+ Mem+ BusMaster+
    Capabilities: [40] Bridge subsystem vendor/device ID
    Capabilities: [60] Message Signaled Interrupts
    Capabilities: [90] PCI Express v2 Root Port, MSI 0
      Link capabilities: Max speed 8.0 GT/s Max width x16
      Negotiated link status: Current speed 8.0 GT/s Width x8
      Link capabilities2: Supported link speeds 2.5 GT/s 5.0 GT/s 8.0 GT/s
    Capabilities: [e0] Power Management
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment