From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from fout-b3-smtp.messagingengine.com (fout-b3-smtp.messagingengine.com [202.12.124.146]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8E641298CA4; Tue, 24 Jun 2025 18:18:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=202.12.124.146 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750789087; cv=none; b=uYFjYwyM0bRSDYjIduhbYBkmS351sGrJDRAyboXnflNglJfN2joebagzCTcAq30QVwRvh4FxGpWgJLNIjU6edHufKJ4hI9NxWLvl/Zkg7JUokHTQ0ILQv42FNAGRfrRaDMI+xXCvrtAF4E6gfJpEXkHBx3mmyYjMIgSFvuSQPI4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750789087; c=relaxed/simple; bh=1hwi+3E/npjJsLVURhD/rxh1PG72Jr4fM9CClyzAC+g=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=EXLJ8S6wzE0DPvU4bLq/FyVmp7HEz3t+hPGC1Oqu42ouT2WKSsCpaFzPbYhUk8jKN7LEkhKz6Nmccv0Rl+KqR5juQLSlZtVRdbRAn8fNVLHF6CFMgbZG0+SKincvOgAVBsTgzdP5yyt1Uhv6CNRu+rfaXsFChETDtqpZJ6i5/LI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ursu.me; spf=pass smtp.mailfrom=ursu.me; dkim=pass (2048-bit key) header.d=ursu.me header.i=@ursu.me header.b=PVdN8LBR; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=oqvhvEid; arc=none smtp.client-ip=202.12.124.146 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ursu.me Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ursu.me Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ursu.me header.i=@ursu.me header.b="PVdN8LBR"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="oqvhvEid" Received: from phl-compute-07.internal (phl-compute-07.phl.internal [10.202.2.47]) by mailfout.stl.internal (Postfix) with ESMTP id 422381D0017B; Tue, 24 Jun 2025 14:18:04 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-07.internal (MEProxy); Tue, 24 Jun 2025 14:18:04 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ursu.me; h=cc:cc :content-transfer-encoding:content-type:content-type:date:date :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1750789084; x=1750875484; bh=NciPXSYJhwcZ1bsK1ubxsblaN89sbnSvIgaoVIz9JbM=; b= PVdN8LBRwUbXlpOdljRRcCNcoy77SF3sv3dl+q2Ljh+MeRcWSvH2QG+YI1TFssQI 4C8KWeFkxLaPMKWxyKCicFbjzUvzKtArVllKR5Q/pNWZxIHqPKWsWpxJMTj9HY5z YGsvL5ZCdeIew9W4/XGhS5N5i4o33rNdoNpGHhDKWLvZTy639/jXSKHVx8nsNyWr YkaIAtbOnzPJNcV25DliWWcK/6joQieUiV2/7VS2eRPbhh/UhCr7OvyQFaij3Xke cAXE3fiMFSSnV17n1O+KwcC9BSQ9ptpHebL9IQz1WWIh7S4aa01wu+bqB1liD000 CF662nMGNOx/JBw3nnxRjg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1750789084; x= 1750875484; bh=NciPXSYJhwcZ1bsK1ubxsblaN89sbnSvIgaoVIz9JbM=; b=o qvhvEidl+Sx8Stsy7sPbFdXvHZm2m+Q5xZS+LPmJCXJYqal4YwpZo85t+5GDUAJP 2Y9mr5Ach3BXYSw4d9mJS03n1cGlmvCtMLaGUaSMdtImSpy17iIr5q1RIWVod5OI OPFEU6aS8F3vUPGh4S3yUUBXFxBCPGy5q55BsOniJSGbZo/XT/+ETzY2lW4SNywJ eMMN0TtZyEBbFi0QqiGuxbGt84VDCmOwZR2WYPH/rMoM4QLzoEEocAYu1RD5oFuR aXsqfLQVilLuqlZYpArBPp4AkdpUPXwmxyVLH+R38ACgV9M5KW/YU0BDzb1t1y2S BsqC/MjiuTHWjmUCHojEg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtddvgddvtdehlecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug hrpefkffggfgfuvfevfhfhjggtgfesthejredttddvjeenucfhrhhomhepgghlrgguucgf tffufgcuoehvlhgrugesuhhrshhurdhmvgeqnecuggftrfgrthhtvghrnhepkeefgeevje dvfefhffeigefffefguedugeeiledufedugfeuudeftdefiefgffegnecuvehluhhsthgv rhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepvhhlrggusehurhhsuhdrmh gvpdhnsggprhgtphhtthhopeduuddpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohep jhgrtggvkhesjhgrtggvkhhkrdhinhhfohdprhgtphhtthhopegrnhhthhhonhihrdhlrd hnghhuhigvnhesihhnthgvlhdrtghomhdprhgtphhtthhopehprhiivghmhihslhgrfidr khhithhsiigvlhesihhnthgvlhdrtghomhdprhgtphhtthhopegrnhgurhgvfidonhgvth guvghvsehluhhnnhdrtghhpdhrtghpthhtohepuggrvhgvmhesuggrvhgvmhhlohhfthdr nhgvthdprhgtphhtthhopegvughumhgriigvthesghhoohhglhgvrdgtohhmpdhrtghpth htohepkhhusggrsehkvghrnhgvlhdrohhrghdprhgtphhtthhopehprggsvghnihesrhgv ughhrghtrdgtohhmpdhrtghpthhtohepihhnthgvlhdqfihirhgvugdqlhgrnheslhhish htshdrohhsuhhoshhlrdhorhhg X-ME-Proxy: Feedback-ID: i9ff147ff:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 24 Jun 2025 14:18:01 -0400 (EDT) Message-ID: <431c1aaa-304d-4291-97f8-c092a6bee884@ursu.me> Date: Tue, 24 Jun 2025 21:17:44 +0300 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 2/2] e1000e: ignore factory-default checksum value on TGP platform To: Jacek Kowalski , Tony Nguyen , Przemek Kitszel , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org References: <8538df94-8ce3-422d-a360-dd917c7e153a@jacekk.info> Content-Language: en-US From: Vlad URSU In-Reply-To: <8538df94-8ce3-422d-a360-dd917c7e153a@jacekk.info> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 23.06.2025 19:18, Jacek Kowalski wrote: > Vlad, > > could you verify that the following patch works for you? > >> diff --git a/drivers/net/ethernet/intel/e1000e/defines.h b/drivers/net/ethernet/intel/e1000e/defines.h >> index 8294a7c4f122..01696eb8dace 100644 >> --- a/drivers/net/ethernet/intel/e1000e/defines.h >> +++ b/drivers/net/ethernet/intel/e1000e/defines.h >> @@ -637,6 +637,7 @@ >> >> /* For checksumming, the sum of all words in the NVM should equal 0xBABA. */ >> #define NVM_SUM 0xBABA >> +#define NVM_SUM_FACTORY_DEFAULT 0xFFFF >> >> /* PBA (printed board assembly) number words */ >> #define NVM_PBA_OFFSET_0 8 >> diff --git a/drivers/net/ethernet/intel/e1000e/nvm.c b/drivers/net/ethernet/intel/e1000e/nvm.c >> index e609f4df86f4..37cbf9236d84 100644 >> --- a/drivers/net/ethernet/intel/e1000e/nvm.c >> +++ b/drivers/net/ethernet/intel/e1000e/nvm.c >> @@ -558,6 +558,11 @@ s32 e1000e_validate_nvm_checksum_generic(struct e1000_hw *hw) >> checksum += nvm_data; >> } >> >> + if (hw->mac.type == e1000_pch_tgp && checksum == (u16)NVM_SUM_FACTORY_DEFAULT) { >> + e_dbg("Factory-default NVM Checksum on TGP platform - ignoring\n"); >> + return 0; >> + } >> + >> if (checksum != (u16)NVM_SUM) { >> e_dbg("NVM Checksum Invalid\n"); >> return -E1000_ERR_NVM; > No, it doesn't. You are comparing the wrong value with NVM_SUM_FACTORY_DEFAULT. You should check it against the checksum word 0x3F (NVM bytes 0x7E and 0x7F) which is used to ensure that the base NVM image is a valid image, and which in my case is left unchanged by Dell in the firmware. I believe the changes should look something like this: --- drivers/net/ethernet/intel/e1000e/defines.h | 3 +++ drivers/net/ethernet/intel/e1000e/nvm.c | 13 ++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/intel/e1000e/defines.h b/drivers/net/ethernet/intel/e1000e/defines.h index 8294a7c4f122..996a0f4d2b49 100644 --- a/drivers/net/ethernet/intel/e1000e/defines.h +++ b/drivers/net/ethernet/intel/e1000e/defines.h @@ -638,6 +638,9 @@ /* For checksumming, the sum of all words in the NVM should equal 0xBABA. */ #define NVM_SUM 0xBABA +/* Factory default value for the NVM checksum word */ +#define NVM_CHECKSUM_WORD_FACTORY_DEFAULT 0xFFFF + /* PBA (printed board assembly) number words */ #define NVM_PBA_OFFSET_0 8 #define NVM_PBA_OFFSET_1 9 diff --git a/drivers/net/ethernet/intel/e1000e/nvm.c b/drivers/net/ethernet/intel/e1000e/nvm.c index e609f4df86f4..4620efac0208 100644 --- a/drivers/net/ethernet/intel/e1000e/nvm.c +++ b/drivers/net/ethernet/intel/e1000e/nvm.c @@ -547,7 +547,18 @@ s32 e1000e_validate_nvm_checksum_generic(struct e1000_hw *hw) { s32 ret_val; u16 checksum = 0; - u16 i, nvm_data; + u16 i, nvm_data, checksum_word; + + ret_val = e1000_read_nvm(hw, NVM_CHECKSUM_REG, 1, &checksum_word); + if (ret_val) { + e_dbg("NVM Read Error\n"); + return ret_val; + } + + if (hw->mac.type == e1000_pch_tgp && checksum_word == (u16)NVM_CHECKSUM_WORD_FACTORY_DEFAULT) { + e_dbg("Factory-default NVM Checksum word on TGP platform - ignoring\n"); + return 0; + } for (i = 0; i < (NVM_CHECKSUM_REG + 1); i++) { ret_val = e1000_read_nvm(hw, i, 1, &nvm_data); --