Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions src/driver/amdxdna/aie2_message.c
Original file line number Diff line number Diff line change
Expand Up @@ -684,6 +684,19 @@ int aie2_register_asyn_event_msg(struct amdxdna_dev_hdl *ndev, struct aie2_mgmt_
return xdna_mailbox_send_msg(ndev->mgmt_chann, &msg, TX_TIMEOUT);
}

void aie2_reset_app_health_report(struct app_health_report *r)
{
if (!r)
return;

r->fatal_info.exception_type = AIE2_APP_HEALTH_RESET_FATAL_INFO;
r->fatal_info.exception_pc = AIE2_APP_HEALTH_RESET_FATAL_INFO;
r->fatal_info.app_module = AIE2_APP_HEALTH_RESET_FATAL_INFO;
r->fatal_info.fatal_type = AIE2_APP_HEALTH_RESET_FATAL_INFO;
r->txn_op_id = AIE2_APP_HEALTH_RESET_TXN_OP_ID;
r->ctx_pc = AIE2_APP_HEALTH_RESET_CTX_PC;
}

int aie2_get_app_health(struct amdxdna_dev_hdl *ndev, struct aie2_mgmt_dma_hdl *mgmt_hdl,
u32 context_id, u32 size)
{
Expand Down
9 changes: 2 additions & 7 deletions src/driver/amdxdna/aie2_pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -1272,14 +1272,9 @@ static int aie2_query_ctx_status_array(struct amdxdna_client *client,
ctx->priv->id, sizeof(*r));
mutex_unlock(&xdna->dev_handle->aie2_lock);
if (ret)
return ret;
aie2_reset_app_health_report(r);
} else {
r->fatal_info.exception_type = AIE2_APP_HEALTH_RESET_FATAL_INFO;
r->fatal_info.exception_pc = AIE2_APP_HEALTH_RESET_FATAL_INFO;
r->fatal_info.app_module = AIE2_APP_HEALTH_RESET_FATAL_INFO;
r->fatal_info.fatal_type = AIE2_APP_HEALTH_RESET_FATAL_INFO;
r->txn_op_id = AIE2_APP_HEALTH_RESET_TXN_OP_ID;
r->ctx_pc = AIE2_APP_HEALTH_RESET_CTX_PC;
aie2_reset_app_health_report(r);
}

tmp[hw_i].fatal_error_exception_type = r->fatal_info.exception_type;
Expand Down
1 change: 1 addition & 0 deletions src/driver/amdxdna/aie2_pci.h
Original file line number Diff line number Diff line change
Expand Up @@ -500,6 +500,7 @@ int aie2_query_aie_telemetry(struct amdxdna_dev_hdl *ndev, struct aie2_mgmt_dma_
u32 type, u32 size, struct aie_version *version);
int aie2_get_app_health(struct amdxdna_dev_hdl *ndev, struct aie2_mgmt_dma_hdl *mgmt_hdl,
u32 context_id, u32 size);
void aie2_reset_app_health_report(struct app_health_report *r);
int aie2_query_aie_version(struct amdxdna_dev_hdl *ndev, struct aie_version *version);
int aie2_query_aie_metadata(struct amdxdna_dev_hdl *ndev, struct aie_metadata *metadata);
int aie2_query_aie_firmware_version(struct amdxdna_dev_hdl *ndev,
Expand Down