[PATCH v2 099/148] net/ice/base: temporary workaround for E830 signed package support

Anatoly Burakov anatoly.burakov at intel.com
Wed Jun 12 17:01:33 CEST 2024


From: Ian Stokes <ian.stokes at 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 at intel.com>
Signed-off-by: Ian Stokes <ian.stokes at 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



More information about the dev mailing list