[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