lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Wed, 28 Aug 2019 09:18:27 +0200
From:   Jakub Jankowski <shasta@...corp.com>
To:     "Fujinaka, Todd" <todd.fujinaka@...el.com>,
        "e1000-devel@...ts.sourceforge.net" 
        <e1000-devel@...ts.sourceforge.net>
Cc:     "netdev@...r.kernel.org" <netdev@...r.kernel.org>,
        "mhemsley@...n-systems.com" <mhemsley@...n-systems.com>,
        Jeff Kirsher <jeffrey.t.kirsher@...el.com>,
        Lihong Yang <lihong.yang@...el.com>
Subject: Re: [E1000-devel] SFP+ EEPROM readouts fail on X722 (ethtool -m:
 Invalid argument)

This commit suggests that it should be possible: 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c271dd6c391b535226cf1a81aaad9f33cb5899d3
(It has been in upstream kernel since v4.12, so my test kernel does have 
it, and so does the out-of-tree driver I'm testing with)

On 8/28/19 2:53 AM, Fujinaka, Todd wrote:
> Sorry about the top posting, but if I don't do it this way I can't read anything in Outlook (not my preferred MUA).
>
> I think I may have been wrong about things. I'm not as familiar with the x722, and the NVM versions are completely different than the x710 and I was confused.
>
> Even worse, I'm not sure if the x722 is able to read the data from the SFP/SFP+ EEPROM. I remembered that was a feature we requested internally but I don't remember what the progress was.
>
> I'm asking around to see if I can get clarification. I haven't heard anything yet.
>
> Todd Fujinaka
> Software Application Engineer
> Datacenter Engineering Group
> Intel Corporation
> todd.fujinaka@...el.com
>
>
> -----Original Message-----
> From: Jakub Jankowski [mailto:shasta@...corp.com]
> Sent: Tuesday, August 27, 2019 4:01 PM
> To: Fujinaka, Todd <todd.fujinaka@...el.com>; e1000-devel@...ts.sourceforge.net
> Cc: netdev@...r.kernel.org; mhemsley@...n-systems.com
> Subject: Re: [E1000-devel] SFP+ EEPROM readouts fail on X722 (ethtool -m: Invalid argument)
>
> Hi,
>
> On 8/27/19 7:56 PM, Fujinaka, Todd wrote:
>> The hints should be:
>> # ethtool -m eth10
>> Cannot get module EEPROM information: Invalid argument # dmesg | tail -n 1 [  445.971974] i40e 0000:3d:00.3 eth10: Module EEPROM memory read not supported. Please update the NVM image.
>>
>> # ethtool -i eth10
>> driver: i40e
>> version: 2.9.21
>> firmware-version: 3.31 0x80000d31 1.1767.0
>>
>> And the working case:
>> # ethtool -i eth8
>> driver: i40e
>> version: 2.9.21
>> firmware-version: 6.01 0x800035cf 1.1876.0
>>
>> If you don't see it, 6.01 > 3.31.
> The reason why firmware between the two is (that much) different is because the non-working case is from X722 NIC, while the working one is from X710.
>
>> The NVM update tool should be available on downloadcenter.intel.com
> Thanks for the pointer to NVM updater. I'd like to offer some additional comments about my experience with the newest one (v4.00):
>
> a) running ./nvmupdate64e (from X722_NVMUpdate_Linux_x64 subdir) errors out without really saying what's wrong:
>
>     # ./nvmupdate64e
>
>     Intel(R) Ethernet NVM Update Tool
>     NVMUpdate version 1.30.2.11
>     Copyright (C) 2013 - 2017 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.
>
> after enabling logging (-l out.log) a bit more is revealed:
>
>     # tail -n 2 out.log
>     Error:   Config file line 2: Not supported config file version.
>     Error:   Missing CONFIG VERSION parameter in configuration file.
>
> but that's not entirely true, CONFIG VERSION is set in the default configuration file:
>
>     # head -n 2 nvmupdate.cfg
>     CURRENT FAMILY: 1.0.0
>     CONFIG VERSION: 1.14.0
>
> so why isn't this understood?
> Manually editing nvmupdate.cfg and setting CONFIG VERSION: 1.11.0 seems to make this particular problem go away.
>
> b) Re-doing this with downgraded config version exposes another problem:
>
>     Config file read.
>     Error:   Can't open NVM map file [Immediate_offset_2.txt]
>
> and indeed, there is no Immediate_offset_2.txt in NVMUpdatePackage_WFT_WFQ&WF0_v4.00/X722_NVMUpdate_Linux_x64/
> There is one, however, in
> NVMUpdatePackage_WFT_WFQ&WF0_v4.00/X722_NVMUpdate_EFIx64/ subdir.
> Copying it over to the _Linux_x64 resolves this particular problem
>
> c) Re-doing this with Immediate_offset_2.txt in place exposes third problem:
>
>     Error:   Can't open NVM image file
> [LBG_B2_Wolf_Pass_WFT_X557_P01_PHY_Auto_Detect_P23_NCSI_v3.31_800016DB.bin]
>
> and once again - same story. It exists in NVMUpdatePackage_WFT_WFQ&WF0_v4.00/X722_NVMUpdate_EFIx64/ but not NVMUpdatePackage_WFT_WFQ&WF0_v4.00/X722_NVMUpdate_Linux_x64/ - had to copy it over.
>
>
> Once I managed to get all these out of the way, the tool finally ran:
>
>     Num Description                               Ver. DevId S:B Status
>     === ======================================== ===== ===== ====== ===============
>     01) Intel(R) Ethernet Server Adapter I350-T4  1.99  1521 00:024 Update not available
>     02) Intel(R) Ethernet Connection X722 for     3.49  37D2 00:061 Update
>         10GBASE-T available
>     03) Intel(R) Ethernet Server Adapter I350-T4  1.99  1521 00:175 Update not available
>
>
> The initial starting point was:
>
> 0) firmware-version: 3.31 0x80000d31 1.1767.0
>
> After first update+reboot, this was bumped to:
>
> 1) firmware-version: 3.1d 0x800016db 1.1767.0    (but ethtool -m ethX still doesn't work)
>
> So I ran the tool the second time, it said 'Update available' again, but this time:
>
>     Num Description                               Ver. DevId S:B Status
>     === ======================================== ===== ===== ====== ===============
>     01) Intel(R) Ethernet Server Adapter I350-T4  1.99  1521 00:024 Update not available
>     02) Intel(R) Ethernet Connection X722 for     3.29  37D2 00:061 Update
>         10GBASE-T available
>     03) Intel(R) Ethernet Server Adapter I350-T4  1.99  1521 00:175 Update not available
>
>     Options: Adapter Index List (comma-separated), [A]ll, e[X]it
>     Enter selection:02
>     Would you like to back up the NVM images? [Y]es/[N]o: Y
>     Update in progress. This operation may take several minutes.
>     [*******+..]
>     Tool execution completed with the following status: <---------- why is there no status printed?
>     Press any key to exit.
>
>
> Checking output log:
>
>     # cat out3.log
>     Intel(R) Ethernet NVM Update Tool
>     NVMUpdate version 1.30.2.11
>     Copyright (C) 2013 - 2017 Intel Corporation.
>
>     ./nvmupdate64e -c nvmupdate.cfg -l out3.log
>
>     Config file read.
>     Inventory
>     [00:061:00:00]: Intel(R) Ethernet Connection X722 for 10GBASE-T
>         Flash inventory started
>         Shadow RAM inventory started
>     Alternate MAC address is not set
>         Shadow RAM inventory finished
>         Flash inventory finished
>         OROM inventory started
>         OROM inventory finished
>         PHY NVM inventory started
>         PHY NVM inventory finished
>     [00:061:00:01]: Intel(R) Ethernet Connection X722 for 10GBASE-T
>         Device already inventoried.
>     [00:061:00:02]: Intel(R) Ethernet Connection X722 for 10GbE SFP+
>         Device already inventoried.
>         PHY NVM inventory started
>         PHY NVM inventory finished
>     [00:061:00:03]: Intel(R) Ethernet Connection X722 for 10GbE SFP+
>         Device already inventoried.
>     Update
>     [00:061:00:00]: Intel(R) Ethernet Connection X722 for 10GBASE-T
>         Creating backup images in directory: A4BF0164884A
>         Backup images created.
>         Flash update started
>         NVM image verification started
>         Shadow RAM image verification started
>
>     Image differences found at offset 0x3AE [Device=0xF, Buffer=0x0] -
> update required.
>     Error:   Flash update failed
>     [00:061:00:02]: Intel(R) Ethernet Connection X722 for 10GbE SFP+
>     #
>
> However, ethtool -i suggests that firmware was updated to:
>
> 2) firmware-version: 4.00 0x80001577 1.1580.0    <------- so it did
> _something_ after all?
>
> At this point, every subsequent attempt to run the NVM updater yields
> the same results: an update is available, but attempting to apply it
> fails with the same message in log.
>
> And my initial issue still persists - ethtool -m <iface> still returns
> "invalid argument" with "Module EEPROM memory read not supported. Please
> update the NVM image" logged in dmesg.
>
> How can I resolve this?
>
> Cheers,
>    Jakub.
>
>> Todd Fujinaka
>> Software Application Engineer
>> Datacenter Engineering Group
>> Intel Corporation
>> todd.fujinaka@...el.com
>>
>>
>> -----Original Message-----
>> From: Jakub Jankowski [mailto:shasta@...corp.com]
>> Sent: Tuesday, August 27, 2019 4:03 AM
>> To: e1000-devel@...ts.sourceforge.net
>> Cc: netdev@...r.kernel.org; shasta@...corp.com; mhemsley@...n-systems.com
>> Subject: [E1000-devel] SFP+ EEPROM readouts fail on X722 (ethtool -m: Invalid argument)
>>
>> Hi,
>>
>> We can't get SFP+ EEPROM readouts for X722 to work at all:
>>
>> # ethtool -m eth10
>> Cannot get module EEPROM information: Invalid argument # dmesg | tail -n 1 [  445.971974] i40e 0000:3d:00.3 eth10: Module EEPROM memory read not supported. Please update the NVM image.
>> # lspci | grep 3d:00.3
>> 3d:00.3 Ethernet controller: Intel Corporation Ethernet Connection X722 for 10GbE SFP+ (rev 09)
>>
>>
>> We're running 4.19.65 kernel at the moment, testing using the newest out-of-tree Intel module
>>
>> # modinfo -F version i40e
>> 2.9.21
>>
>> We also tried:
>> - 4.19.65 with in-tree i40e (2.3.2-k)
>> - stock Arch Linux (kernel 5.2.5, driver 2.8.20-k) and the results are the same, as shown above.
>>
>> # ethtool -i eth10
>> driver: i40e
>> version: 2.9.21
>> firmware-version: 3.31 0x80000d31 1.1767.0
>> expansion-rom-version:
>> bus-info: 0000:3d:00.3
>> supports-statistics: yes
>> supports-test: yes
>> supports-eeprom-access: yes
>> supports-register-dump: yes
>> supports-priv-flags: yes
>> # dmidecode -s baseboard-manufacturer
>> Intel Corporation
>> # dmidecode -s baseboard-product-name
>> S2600WFT
>> # dmidecode -s baseboard-version
>> H48104-853
>>
>> # lspci -vvv
>> (...)
>> 3d:00.3 Ethernet controller: Intel Corporation Ethernet Connection X722 for 10GbE SFP+ (rev 09)
>> 	DeviceName: Intel PCH Integrated 10 Gigabit Ethernet Controller
>> 	Subsystem: Intel Corporation Ethernet Connection X722 for 10GbE SFP+
>> 	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: 32 bytes
>> 	Interrupt: pin A routed to IRQ 112
>> 	NUMA node: 0
>> 	Region 0: Memory at ab000000 (64-bit, prefetchable) [size=16M]
>> 	Region 3: Memory at b0000000 (64-bit, prefetchable) [size=32K]
>> 	Expansion ROM at <ignored> [disabled]
>> 	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 256 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+, LTR-, OBFF Not Supported
>> 			 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-
>> 	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: [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: 32, Total VFs: 32, Number of VFs: 0, Function Dependency Link: 03
>> 		VF offset: 109, stride: 1, Device ID: 37cd
>> 		Supported Page Size: 00000553, System Page Size: 00000001
>> 		Region 0: Memory at 00000000af000000 (64-bit, prefetchable)
>> 		Region 3: Memory at 00000000b0020000 (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
>>
>>
>> Same kernel+i40e, same SFP+ module - but on Intel X710, works like a treat:
>>
>> # lspci | grep X7
>> 81:00.0 Ethernet controller: Intel Corporation Ethernet Controller X710 for 10GbE SFP+ (rev 01)
>> 81:00.1 Ethernet controller: Intel Corporation Ethernet Controller X710 for 10GbE SFP+ (rev 01) # ethtool -m eth8
>> 	Identifier                                : 0x03 (SFP)
>> 	Extended identifier                       : 0x04 (GBIC/SFP defined by 2-wire interface ID)
>> 	Connector                                 : 0x07 (LC)
>> 	Transceiver codes                         : 0x10 0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x00
>> 	Transceiver type                          : 10G Ethernet: 10G Base-SR
>> 	Transceiver type                          : Ethernet: 1000BASE-SX
>> 	Encoding                                  : 0x06 (64B/66B)
>> 	BR, Nominal                               : 10300MBd
>>            (...)
>> # ethtool -i eth8
>> driver: i40e
>> version: 2.9.21
>> firmware-version: 6.01 0x800035cf 1.1876.0
>> expansion-rom-version:
>> bus-info: 0000:81:00.0
>> supports-statistics: yes
>> supports-test: yes
>> supports-eeprom-access: yes
>> supports-register-dump: yes
>> supports-priv-flags: yes
>> #
>>
>>
>> Is this a known problem?
>>
>>
>> Best regards,
>>     Jakub
>>
>>
>>
>> _______________________________________________
>> E1000-devel mailing list
>> E1000-devel@...ts.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/e1000-devel
>> To learn more about Intel&#174; Ethernet, visit http://communities.intel.com/community/wired


-- 
Jakub Jankowski|shasta@...corp.com|http://toxcorp.com/
GPG: FCBF F03D 9ADB B768 8B92 BB52 0341 9037 A875 942D

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ