Intel-Wired-Lan Archive on lore.kernel.org
 help / color / mirror / Atom feed
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>


  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