[PATCH next-queue v1 0/2] ice: eRoT adapter NVM update guard
From: Aleksandr Loktionov <hidden>
Date: 2026-09-17 09:43:19
Also in:
intel-wired-lan
CNSA 2.0 PQC adapters carry an external Root of Trust (eRoT) controller that performs full-image authentication on every NVM update. The eRoT does not allow updating individual components; it requires NVM, OROM, NetList, and Manifest all together in one shot. If you hand it a partial PLDM capsule today, firmware rejects the write mid-session (i.e. partway through the PLDM component transfer sequence), after the erase has already been issued. Patch 1 detects eRoT presence. Newer firmware advertises it directly via device capability 0x004E; older firmware does not, so there is an NVM-based fallback that reads the eRoT presence fuse (SR 0x1016 bits[1:0]). The result goes into hw->erot_present and is surfaced as ICE_F_EROT. Patch 2 uses that flag to gate the flash path. Component identifiers are tracked as the PLDM component table is walked, and if the full required set is not present when ice_flash_component() is first entered, the whole update is rejected with -EINVAL and a netlink error message before a single flash bank is touched. The Manifest component itself is only ever accepted on eRoT adapters in the first place. Testing: validated on real eRoT-equipped hardware. Aleksandr Loktionov (2): ice: detect eRoT presence via device capability ice: reject partial NVM update on eRoT adapters drivers/net/ethernet/intel/ice/ice.h | 1 + .../net/ethernet/intel/ice/ice_adminq_cmd.h | 1 + drivers/net/ethernet/intel/ice/ice_common.c | 7 ++ .../net/ethernet/intel/ice/ice_fw_update.c | 80 +++++++++++++++++++ drivers/net/ethernet/intel/ice/ice_lib.c | 3 + drivers/net/ethernet/intel/ice/ice_nvm.c | 39 ++++++++++ drivers/net/ethernet/intel/ice/ice_nvm.h | 5 ++ drivers/net/ethernet/intel/ice/ice_type.h | 6 ++ include/linux/net/intel/libie/adminq.h | 1 + 9 files changed, 143 insertions(+) -- 2.52.0