mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Lifshits, Vitaly" <vitaly.lifshits@intel.com>
To: Jacek Kowalski <jacek@jacekk.info>,
	Tony Nguyen <anthony.l.nguyen@intel.com>,
	Przemek Kitszel <przemyslaw.kitszel@intel.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>,
	"Paolo Abeni" <pabeni@redhat.com>
Cc: <intel-wired-lan@lists.osuosl.org>, <netdev@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>
Subject: Re: [Intel-wired-lan] [PATCH] e1000e: add option not to verify NVM checksum
Date: Thu, 10 Apr 2025 15:13:44 +0300	[thread overview]
Message-ID: <ca5e7925-1d75-5168-2c54-1f4fa9ef523e@intel.com> (raw)
In-Reply-To: <a6d71bdc-3c40-49a1-94e5-369029693d06@jacekk.info>



On 3/31/2025 11:36 PM, Jacek Kowalski wrote:
> Hi,
> 
>> Are you certain that the UEFI FW corrupts the checksum each time, or 
>> is it just that the system left the factory with incorrect checksum?
> 
> I'm quite far from that device at the moment, but from what I remember:
> 
> - when I forced the NVM update path in the driver, the device would work,
> - after the reboot the checksum was invalid again.
> 
> I'll experiment a little more and get back to you. Specifically I'll try 
> to dump the NVM contents before and after running 
> e1000e_update_nvm_checksum and after a reboot.
> 
> Maybe the "shadow RAM" was correctly updated, but the change was 
> (silently?) not persisted due to the security change you mention:
> 
>> From what we know, the Latitude E5420 is 11th Gen Intel CPU (Tiger Lake).
>> Starting from this generation, a security change makes it impossible 
>> for software to write to the I219 NVM.
> 
> 
>> From a technical perspective, your patch looks correct. However, if 
>> the checksum validation is skipped, there is no way to distinguish 
>> between the simple checksum error described above, and actual NVM 
>> corruption, which may result in loss of functionality and undefined 
>> behavior.
> 
> The distinction between checksum error and corruption will be performed 
> by sufficiently privileged user, who must set the properly marked flag 
> in the driver in order to do so. Is it more "insecure" than disabling 
> NVM write protection (flag above)?
> 
> Note that I am not the only one with this issue...
> 
> Precision 7560 (also 11th gen):
> https://www.dell.com/community/en/conversations/precision-mobile-workstations/precision-7560-e1000e-module-error-the-nvm-checksum-is-not-valid/647f9784f4ccf8a8dea83444 
> 
> 
> Latitude 5420 (same as mine):
> https://forums.linuxmint.com/viewtopic.php?t=412046
> https://bbs.archlinux.org/viewtopic.php?id=269606
> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2102113
> https://community.tanium.com/s/question/0D5RO00000Chk2S0AR/tanium-provision-dell-latitude-5420-onboard-nic 
> 
> 
> EVGA Z590 mainboard:
> https://www.linux.org/threads/getting-intel-i219-v-to-work-in-debian-12.45761/ 
> 
> 
> I am quite sure that Dell nor other manufacturers won't do anything with 
> it...
> 
> I'm also interested in how the Windows driver works around such an issue.
> 
> 
>  > This means, that if there is any functional issue with the network
>  > adapter on a given system, while checksum validation was suspended by
>  > the user, we will not be able to offer support
> 
> Is completely non functional adapter (as mine) covered by this support 
> promise?
> 
> 
> Wrapping up: if nothing else works, what would you see as a possible way 
> forward?
> 
> 1. This flag.
> 
> 2. Option to override the checksum value (compare with a given value 
> rather than ignoring it completely).
> 
> 3. Option to force NVM update (provided that my tests will show that it 
> works - even if only until a reboot).
> 

As we are aware, Tigerlake systems, like the one you have, were the 
first to implement NVM locking for write operations. Some manufacturers 
have encountered issues with this NVM generation. To address these 
challenges, I propose providing a workaround applicable to all affected 
systems. This solution will ensure that anyone experiencing similar 
issues can implement a fix without requiring a technical background to 
enable private flags.

If this approach is acceptable to you, I will prepare a patch with the 
proposed fix and send it to you next week for testing on your system.

  reply	other threads:[~2025-04-10 12:14 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-18 20:46 Jacek Kowalski
2025-03-19 12:28 ` [Intel-wired-lan] " Loktionov, Aleksandr
2025-03-31 12:52 ` Lifshits, Vitaly
2025-03-31 14:29   ` Andrew Lunn
2025-03-31 18:49     ` Jacek Kowalski
2025-03-31 20:36   ` Jacek Kowalski
2025-04-10 12:13     ` Lifshits, Vitaly [this message]
2025-04-11 23:14       ` Jacek Kowalski
2025-04-11 23:36         ` Jacek Kowalski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ca5e7925-1d75-5168-2c54-1f4fa9ef523e@intel.com \
    --to=vitaly.lifshits@intel.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=anthony.l.nguyen@intel.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=intel-wired-lan@lists.osuosl.org \
    --cc=jacek@jacekk.info \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=przemyslaw.kitszel@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®