misc: ele_api: Add V2X Get State API

Add V2X Get State API to return V2X states for debug purpose

Signed-off-by: Ye Li <ye.li@nxp.com>
This commit is contained in:
Ye Li
2026-06-26 23:02:46 -03:00
committed by Fabio Estevam
parent bd4be85a4a
commit 00bba5a358
2 changed files with 40 additions and 0 deletions
+8
View File
@@ -30,6 +30,7 @@
#define ELE_START_RNG (0xA3)
#define ELE_CMD_DERIVE_KEY (0xA9)
#define ELE_GENERATE_DEK_BLOB (0xAF)
#define ELE_V2X_GET_STATE_REQ (0xB2)
#define ELE_ENABLE_PATCH_REQ (0xC3)
#define ELE_RELEASE_RDC_REQ (0xC4)
#define ELE_GET_FW_STATUS_REQ (0xC5)
@@ -141,6 +142,12 @@ struct ele_get_info_data {
u32 reserved[8];
};
struct v2x_get_state {
u8 v2x_state;
u8 v2x_power_state;
u32 v2x_err_code;
};
int ele_release_rdc(u8 core_id, u8 xrdc, u32 *response);
int ele_auth_oem_ctnr(ulong ctnr_addr, u32 *response);
int ele_release_container(u32 *response);
@@ -166,4 +173,5 @@ int ele_read_shadow_fuse(u32 fuse_id, u32 *fuse_val, u32 *response);
int ele_set_gmid(u32 *response);
int ele_volt_change_start_req(void);
int ele_volt_change_finish_req(void);
int ele_v2x_get_state(struct v2x_get_state *state, u32 *response);
#endif
+32
View File
@@ -795,6 +795,38 @@ int ele_generate_dek_blob(u32 key_id, u32 src_paddr, u32 dst_paddr, u32 max_outp
return ret;
}
int ele_v2x_get_state(struct v2x_get_state *state, u32 *response)
{
struct udevice *dev = gd->arch.ele_dev;
int size = sizeof(struct ele_msg);
struct ele_msg msg = {};
int ret;
if (!dev) {
printf("ele dev is not initialized\n");
return -ENODEV;
}
msg.version = ELE_VERSION;
msg.tag = ELE_CMD_TAG;
msg.size = 1;
msg.command = ELE_V2X_GET_STATE_REQ;
ret = misc_call(dev, false, &msg, size, &msg, size);
if (ret)
printf("Error: %s: ret %d, response 0x%x\n",
__func__, ret, msg.data[0]);
if (response)
*response = msg.data[0];
state->v2x_state = msg.data[1] & 0xFF;
state->v2x_power_state = (msg.data[1] & 0xFF00) >> 8;
state->v2x_err_code = msg.data[2];
return ret;
}
int ele_volt_change_start_req(void)
{
struct udevice *dev = gd->arch.ele_dev;