On Fri, Jul 29, 2016 at 1:59 PM, Alexey Muranov <alexey.mura...@gmail.com> wrote: > On 27 Jul 2016, at 17:45, Alexander Duyck <alexander.du...@gmail.com> wrote: > >> Other than that I can't think of too many other ways to modify the >> EEPROM without actually going in and modifying it yourself. I believe >> the e1000e driver supports modifying an EEPROM via ethtool, so one >> possible fix would be to disable the EEPROM protection and read/write >> the same value from some offset on the EEPROM. For example byte >> offsets 0x10 through 0x13 in your dump below should represent the PBA >> number. If you were to either rewrite it as 0xFF or even alter the >> data it should cause no harm since the PBA number is currently unused >> anyway, note the "PBA No: FFFFFF-0FF" from your driver load. The key >> bit being that we want to trigger e1000e_update_nvm_checksum which >> will occur with any write as long as it is in a checksummed region. > > Alexander, thanks a lot, it worked! > > For the record, here is what i did, more or less. > > I noted the checksum before writing to the EEPROM (not really, i just looked > it up in the dump afterwards): > > $ sudo ethtool -e enp0s31f6 offset 0x7e length 2 > Offset Values > ------ ------ > 0x007e: 60 13 > > Checked again a value which is a part of PBA: > > $ sudo ethtool -e enp0s31f6 offset 0x10 length 1 > Offset Values > ------ ------ > 0x0010: ff > > Determined the "magic" key 0x15708086 for writing to my EEPROM with ethtool, > after reading > http://blog.vodkamelone.de/archives/146-Unbricking-an-Intel-Pro1000-e1000-network-interface.html > : > > $ lspci -nn | grep Ethernet > 00:1f.6 Ethernet controller [0200]: Intel Corporation Ethernet Connection > I219-V [8086:1570] (rev 21) > > Wrote to EEPROM: > > $ sudo ethtool -E enp0s31f6 magic 0x15708086 offset 0x10 value 0xff > > Checked the new checksum: > > $ sudo ethtool -e enp0s31f6 offset 0x7e length 2 > Offset Values > ------ ------ > 0x007e: 60 93 > > (I also checked the whole dump. Naturally, there were no other differences.) > > I booted a kernel with an unpatched e1000e, and the Ethernet worked fine. > > What is strange, is that the checksum was off by one bit, apparently the > highest one... > > - Alexey.
Glad to hear you got it fixed. It isn't too surprising that there would only be a single bit difference. Odds are what probably happened is that a single bit somewhere in your NVM was changed and that resulted in a single bit difference in your checksum. - Alex ------------------------------------------------------------------------------ _______________________________________________ E1000-devel mailing list E1000-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/e1000-devel To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired