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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox