Commit 3cbdb034 authored by Dan Nowlin's avatar Dan Nowlin Committed by Jakub Kicinski

ice: Add support for E830 DDP package segment

Add support for E830 DDP package segment. For the E830 package,
signature buffers will not be included inline in the configuration
buffers. Instead, the signature buffers will be located in a
signature segment.
Reviewed-by: default avatarJesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: default avatarDan Nowlin <dan.nowlin@intel.com>
Co-developed-by: default avatarPaul Greenwalt <paul.greenwalt@intel.com>
Signed-off-by: default avatarPaul Greenwalt <paul.greenwalt@intel.com>
Reviewed-by: default avatarSimon Horman <horms@kernel.org>
Tested-by: default avatarTony Brelinski <tony.brelinski@intel.com>
Signed-off-by: default avatarJacob Keller <jacob.e.keller@intel.com>
Link: https://lore.kernel.org/r/20231025214157.1222758-5-jacob.e.keller@intel.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 2777d24e
This diff is collapsed.
...@@ -98,10 +98,21 @@ struct ice_pkg_hdr { ...@@ -98,10 +98,21 @@ struct ice_pkg_hdr {
__le32 seg_offset[]; __le32 seg_offset[];
}; };
/* Package signing algorithm types */
#define SEGMENT_SIGN_TYPE_INVALID 0x00000000
#define SEGMENT_SIGN_TYPE_RSA2K 0x00000001
#define SEGMENT_SIGN_TYPE_RSA3K 0x00000002
#define SEGMENT_SIGN_TYPE_RSA3K_SBB 0x00000003 /* Secure Boot Block */
#define SEGMENT_SIGN_TYPE_RSA3K_E825 0x00000005
/* generic segment */ /* generic segment */
struct ice_generic_seg_hdr { struct ice_generic_seg_hdr {
#define SEGMENT_TYPE_METADATA 0x00000001 #define SEGMENT_TYPE_INVALID 0x00000000
#define SEGMENT_TYPE_ICE 0x00000010 #define SEGMENT_TYPE_METADATA 0x00000001
#define SEGMENT_TYPE_ICE_E810 0x00000010
#define SEGMENT_TYPE_SIGNING 0x00001001
#define SEGMENT_TYPE_ICE_RUN_TIME_CFG 0x00000020
#define SEGMENT_TYPE_ICE_E830 0x00000017
__le32 seg_type; __le32 seg_type;
struct ice_pkg_ver seg_format_ver; struct ice_pkg_ver seg_format_ver;
__le32 seg_size; __le32 seg_size;
...@@ -163,6 +174,18 @@ struct ice_global_metadata_seg { ...@@ -163,6 +174,18 @@ struct ice_global_metadata_seg {
#define ICE_MIN_S_SZ 1 #define ICE_MIN_S_SZ 1
#define ICE_MAX_S_SZ 4084 #define ICE_MAX_S_SZ 4084
struct ice_sign_seg {
struct ice_generic_seg_hdr hdr;
__le32 seg_id;
__le32 sign_type;
__le32 signed_seg_idx;
__le32 signed_buf_start;
__le32 signed_buf_count;
#define ICE_SIGN_SEG_RESERVED_COUNT 44
u8 reserved[ICE_SIGN_SEG_RESERVED_COUNT];
struct ice_buf_table buf_tbl;
};
/* section information */ /* section information */
struct ice_section_entry { struct ice_section_entry {
__le32 type; __le32 type;
......
...@@ -920,7 +920,10 @@ struct ice_hw { ...@@ -920,7 +920,10 @@ struct ice_hw {
/* Active package version (currently active) */ /* Active package version (currently active) */
struct ice_pkg_ver active_pkg_ver; struct ice_pkg_ver active_pkg_ver;
u32 pkg_seg_id;
u32 pkg_sign_type;
u32 active_track_id; u32 active_track_id;
u8 pkg_has_signing_seg:1;
u8 active_pkg_name[ICE_PKG_NAME_SIZE]; u8 active_pkg_name[ICE_PKG_NAME_SIZE];
u8 active_pkg_in_nvm; u8 active_pkg_in_nvm;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment