From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 18F8D4404F;
	Wed, 12 Jun 2024 17:19:27 +0200 (CEST)
Received: from mails.dpdk.org (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id BB8FC42F55;
	Wed, 12 Jun 2024 17:06:02 +0200 (CEST)
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.10])
 by mails.dpdk.org (Postfix) with ESMTP id 6B76C42F3D
 for <dev@dpdk.org>; Wed, 12 Jun 2024 17:05:59 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
 d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
 t=1718204760; x=1749740760;
 h=from:to:cc:subject:date:message-id:in-reply-to:
 references:mime-version:content-transfer-encoding;
 bh=uzVqxred9OjYowT5viXEEYIV0zorqDhzDqUqkZGxOCQ=;
 b=jMZUWFpUVO5ZizjeIQJhpCkir8Vf2OqJvX/28YjToJFFXV+BWPmAP61+
 P4spbAzEuXeLMLlaPC6R9pwxpAKt4lwlJTR/uUABQzfDWG+pNrU/W1qLp
 PBnBS4TKkS+rucWYINyKOrprpIJ8pyrAqTMk8yjRq9uXdlIrapGCDaf0I
 FUCObumXIGAGuHRxRjh6AsJ1JJLgnOcaq6p/yNeghXDcTE25fW9gWa3QS
 9Rw9qGszaairnNqTmUPvWzzypTDFJzNYgoxThcr/aZUOilXY8qRZYd1IQ
 EMbpLsWyHSi1IxZgjFj9xnZz6GLsKhXG8JLNXBbWx7AAOpg2HeJ02KS0S w==;
X-CSE-ConnectionGUID: u3icQESVSZSC2GqHI+2xKQ==
X-CSE-MsgGUID: 0CKIH1B8SQWURQb/FuR4JA==
X-IronPort-AV: E=McAfee;i="6700,10204,11101"; a="32459832"
X-IronPort-AV: E=Sophos;i="6.08,233,1712646000"; d="scan'208";a="32459832"
Received: from orviesa009.jf.intel.com ([10.64.159.149])
 by orvoesa102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 12 Jun 2024 08:05:59 -0700
X-CSE-ConnectionGUID: oQnAcMv5S5mL7utJ/n+2sQ==
X-CSE-MsgGUID: dkMptQVcSNGh/ySEHux7pg==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.08,233,1712646000"; d="scan'208";a="39925758"
Received: from silpixa00401119.ir.intel.com ([10.55.129.167])
 by orviesa009.jf.intel.com with ESMTP; 12 Jun 2024 08:05:58 -0700
From: Anatoly Burakov <anatoly.burakov@intel.com>
To: dev@dpdk.org
Cc: Ian Stokes <ian.stokes@intel.com>, bruce.richardson@intel.com,
 Dan Nowlin <dan.nowlin@intel.com>
Subject: [PATCH v2 099/148] net/ice/base: temporary workaround for E830 signed
 package support
Date: Wed, 12 Jun 2024 16:01:33 +0100
Message-ID: <034b17c92499ba1f9b1a7970ca96f36f114a43ce.1718204529.git.anatoly.burakov@intel.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1718204528.git.anatoly.burakov@intel.com>
References: <20240430154014.1026-1-ian.stokes@intel.com>
 <cover.1718204528.git.anatoly.burakov@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org

From: Ian Stokes <ian.stokes@intel.com>

Add a workaround to deal with a signed package issue where the following
sections are in the DDP OS package, but the FW does not support.

To allow the package and FW to work togther properly, skip downloading
the unsupported sections by forcing the number of buffers in the
E830 reference signature segment to be 1 instead of 3. That will bypass
the download of the two buffers that contain the unsupported sections.

Signed-off-by: Dan Nowlin <dan.nowlin@intel.com>
Signed-off-by: Ian Stokes <ian.stokes@intel.com>
---
 drivers/net/ice/base/ice_ddp.c | 3 +++
 drivers/net/ice/base/ice_ddp.h | 1 +
 2 files changed, 4 insertions(+)

diff --git a/drivers/net/ice/base/ice_ddp.c b/drivers/net/ice/base/ice_ddp.c
index 3271d4572d..f8cc774fea 100644
--- a/drivers/net/ice/base/ice_ddp.c
+++ b/drivers/net/ice/base/ice_ddp.c
@@ -549,6 +549,9 @@ ice_dwnld_sign_and_cfg_segs(struct ice_hw *hw, struct ice_pkg_hdr *pkg_hdr,
 	start = LE32_TO_CPU(seg->signed_buf_start);
 	count = LE32_TO_CPU(seg->signed_buf_count);
 
+	if (count == 0 && seg->seg_id == SEGMENT_TYPE_ICE_E830)
+		seg->buf_tbl.buf_count = 1;
+
 	state = ice_download_pkg_sig_seg(hw, seg);
 	if (state)
 		goto exit;
diff --git a/drivers/net/ice/base/ice_ddp.h b/drivers/net/ice/base/ice_ddp.h
index 9aa5f03559..5761920207 100644
--- a/drivers/net/ice/base/ice_ddp.h
+++ b/drivers/net/ice/base/ice_ddp.h
@@ -107,6 +107,7 @@ struct ice_generic_seg_hdr {
 #define SEGMENT_TYPE_METADATA	0x00000001
 #define SEGMENT_TYPE_ICE_E810	0x00000010
 #define SEGMENT_TYPE_SIGNING	0x00001001
+#define SEGMENT_TYPE_ICE_E830	0x00000017
 #define SEGMENT_TYPE_ICE_RUN_TIME_CFG 0x00000020
 	__le32 seg_type;
 	struct ice_pkg_ver seg_format_ver;
-- 
2.43.0