From: Tomasz Lichwala <tomasz.lichwala@linux.intel.com>
To: Aleksandr Loktionov <aleksandr.loktionov@intel.com>,
intel-wired-lan@lists.osuosl.org, anthony.l.nguyen@intel.com
Subject: Re: [PATCH iwl-next v3 1/2] ice: parse external Root of Trust capability
Date: Thu, 29 Oct 2026 15:43:46 +0100 [thread overview]
Message-ID: <d8ef0283-7fa0-4e88-9a6d-519ea4922294@linux.intel.com> (raw)
In-Reply-To: <7d67f40ea838a9b9e363a26eded23deef8a8ff6c.1793119681.git.aleksandr.loktionov@intel.com>
On 27.10.2026 18:45, Aleksandr Loktionov wrote:
> Reserve the external PQC Root of Trust capability ID in the shared libie
> capability list and parse its value into the device capabilities.
>
> Firmware reports 1 when an external Root of Trust (eRoT) controller is
> present and 0 when it is not. Keep a separate bit for an explicit value
> other than 0 or 1, so the flash path can reject an unknown answer
> instead of reading it as absence: an image the eRoT turns down leaves an
> erased flash bank behind, so guessing is worse than not flashing. Set
> both bits with |=, so a duplicated capability entry cannot undo a verdict
> already taken from an earlier one: an invalid value always rejects the
> update, and a mix of 0 and 1 keeps the eRoT checks enabled.
>
> Signed-off-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
> ---
> drivers/net/ethernet/intel/ice/ice_common.c | 7 +++++++
> drivers/net/ethernet/intel/ice/ice_type.h | 3 +++
> include/linux/net/intel/libie/adminq.h | 1 +
> 3 files changed, 11 insertions(+)
>
> diff --git a/drivers/net/ethernet/intel/ice/ice_common.c b/drivers/net/ethernet/intel/ice/ice_common.c
> index 81187214..cc387c6 100644
> --- a/drivers/net/ethernet/intel/ice/ice_common.c
> +++ b/drivers/net/ethernet/intel/ice/ice_common.c
> @@ -2482,6 +2482,13 @@ ice_parse_common_caps(struct ice_hw *hw, struct ice_hw_common_caps *caps,
> case LIBIE_AQC_CAPS_TX_SCHED_TOPO_COMP_MODE:
> caps->tx_sched_topo_comp_mode_en = (number == 1);
> break;
> + case LIBIE_AQC_CAPS_EXTERNAL_PQC_ROT_PRESENT:
> + /* sticky, so a duplicated entry cannot clear an earlier verdict */
> + caps->external_pqc_rot_present |= (number == 1);
> + caps->external_pqc_rot_invalid |= (number != 0 && number != 1);
> + ice_debug(hw, ICE_DBG_INIT, "%s: external_pqc_rot = %u\n",
> + prefix, number);
> + break;
> default:
> /* Not one of the recognized common capabilities */
> found = false;
> diff --git a/drivers/net/ethernet/intel/ice/ice_type.h b/drivers/net/ethernet/intel/ice/ice_type.h
> index 4b6ed42..1ff69f7 100644
> --- a/drivers/net/ethernet/intel/ice/ice_type.h
> +++ b/drivers/net/ethernet/intel/ice/ice_type.h
> @@ -311,6 +311,9 @@ struct ice_hw_common_caps {
> /* Post update reset restriction */
> bool reset_restrict_support;
> bool tx_sched_topo_comp_mode_en;
> + /* External Root of Trust (eRoT) controller present */
> + bool external_pqc_rot_present;
> + bool external_pqc_rot_invalid;
> };
>
> /* IEEE 1588 TIME_SYNC specific info */
> diff --git a/include/linux/net/intel/libie/adminq.h b/include/linux/net/intel/libie/adminq.h
> index 839114d..df42f5b 100644
> --- a/include/linux/net/intel/libie/adminq.h
> +++ b/include/linux/net/intel/libie/adminq.h
> @@ -175,6 +175,7 @@ LIBIE_CHECK_STRUCT_LEN(16, libie_aqc_list_caps);
> #define LIBIE_AQC_CAPS_PENDING_OROM_VER 0x004B
> #define LIBIE_AQC_CAPS_NET_VER 0x004C
> #define LIBIE_AQC_CAPS_PENDING_NET_VER 0x004D
> +#define LIBIE_AQC_CAPS_EXTERNAL_PQC_ROT_PRESENT 0x004E
> #define LIBIE_AQC_CAPS_RDMA 0x0051
> #define LIBIE_AQC_CAPS_LED 0x0061
> #define LIBIE_AQC_CAPS_SDP 0x0062
Reviewed-by: Tomasz Lichwala <tomasz.lichwala@linux.intel.com>
next prev parent reply other threads:[~2026-10-29 14:43 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-27 17:45 [PATCH iwl-next v3 0/2] ice: eRoT adapter NVM update guard Aleksandr Loktionov
2026-10-27 17:45 ` [PATCH iwl-next v3 1/2] ice: parse external Root of Trust capability Aleksandr Loktionov
2026-10-29 14:43 ` Tomasz Lichwala [this message]
2026-10-27 17:45 ` [PATCH iwl-next v3 2/2] ice: reject partial NVM update on eRoT adapters Aleksandr Loktionov
2026-10-28 12:11 ` Przemek Kitszel
2026-10-29 14:43 ` Tomasz Lichwala
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d8ef0283-7fa0-4e88-9a6d-519ea4922294@linux.intel.com \
--to=tomasz.lichwala@linux.intel.com \
--cc=aleksandr.loktionov@intel.com \
--cc=anthony.l.nguyen@intel.com \
--cc=intel-wired-lan@lists.osuosl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.