As described by Vitaly Lifshits: > Starting from Tiger Lake, LAN NVM is locked for writes by SW, so the > driver cannot perform checksum validation and correction. This means > that all NVM images must leave the factory with correct checksum and > checksum valid bit set.
There are two issues we have found so far on some Tiger Lake systems: 1. Checksum valid bit unset in NVM Some Dell laptops, i.e. Latitude 5420, have a valid bit unset and incorrect checksum over NVM contents. 2. Checksum word in NVM is uninitialized (0xFFFF) Other Dell system, Optiplex 5090 Micro, has a valid bit set while a checksum word contains 0xFFFF ("empty"/uninitialized value). Both issues result in the driver refusing to work with error: > e1000e 0000:XX:XX.X: The NVM Checksum Is Not Valid The network card is rendered unusable. Patches work around those problems by ignoring NVM checksum when those exact error conditions are detected on TGP-based systems. v1 -> v2: work around issue #2 v2 -> v3: fix wrong comparison in workaround for #2, drop u16 cast v3 -> v4: rename constant, reformat files, update commit description Jacek Kowalski (2): e1000e: disregard NVM checksum on tgp when valid checksum bit is not set e1000e: ignore uninitialized checksum word on tgp drivers/net/ethernet/intel/e1000e/defines.h | 3 +++ drivers/net/ethernet/intel/e1000e/ich8lan.c | 2 ++ drivers/net/ethernet/intel/e1000e/nvm.c | 6 ++++++ 3 files changed, 11 insertions(+) -- 2.47.2