[PATCH 2/7] firmware: imx: ele: Correct ele_fw_authenticate API
Peng Fan (OSS)
peng.fan at oss.nxp.com
Sun May 24 22:39:25 PDT 2026
From: Peng Fan <peng.fan at nxp.com>
The command format is as:
0(32bits): Header
1(32bits): Address of the container header
2(32bits): Reserved for future
3(32bits): Actual address of the container header
Correct the data field to only use lower 32bits. If upper 32bits are
not zero, fail the command.
Fixes: 106ffe5d78ad8 ("firmware: imx: add driver for NXP EdgeLock Enclave")
Signed-off-by: Peng Fan <peng.fan at nxp.com>
---
drivers/firmware/imx/ele_base_msg.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/drivers/firmware/imx/ele_base_msg.c b/drivers/firmware/imx/ele_base_msg.c
index 23f68076b85ce3ac0293bb98e39310e20834f7db..f6346f15450963b9dd8d2df7d3e6b2ce6b4602ce 100644
--- a/drivers/firmware/imx/ele_base_msg.c
+++ b/drivers/firmware/imx/ele_base_msg.c
@@ -208,6 +208,11 @@ int ele_fw_authenticate(struct se_if_priv *priv, phys_addr_t contnr_addr,
if (!priv)
return -EINVAL;
+ if (upper_32_bits(contnr_addr) || upper_32_bits(img_addr)) {
+ dev_err(priv->dev, "Wrong address: %pap %pap\n", &contnr_addr, &img_addr);
+ return -EINVAL;
+ }
+
struct se_api_msg *tx_msg __free(kfree) =
kzalloc(ELE_FW_AUTH_REQ_SZ, GFP_KERNEL);
if (!tx_msg)
@@ -224,8 +229,8 @@ int ele_fw_authenticate(struct se_if_priv *priv, phys_addr_t contnr_addr,
return ret;
tx_msg->data[0] = lower_32_bits(contnr_addr);
- tx_msg->data[1] = upper_32_bits(contnr_addr);
- tx_msg->data[2] = img_addr;
+ tx_msg->data[1] = 0;
+ tx_msg->data[2] = lower_32_bits(img_addr);
ret = ele_msg_send_rcv(priv->priv_dev_ctx, tx_msg, ELE_FW_AUTH_REQ_SZ, rx_msg,
ELE_FW_AUTH_RSP_MSG_SZ);
--
2.37.1
More information about the linux-arm-kernel
mailing list