Commit 43d8acce authored by Dani Liberman's avatar Dani Liberman Committed by Oded Gabbay

accel/habanalabs: handle arc farm razwi

Implement razwi handling for arc farm and add it to arc farm sei
event handler.
Signed-off-by: default avatarDani Liberman <dliberman@habana.ai>
Reviewed-by: default avatarOded Gabbay <ogabbay@kernel.org>
Signed-off-by: default avatarOded Gabbay <ogabbay@kernel.org>
parent f17182d0
...@@ -2097,7 +2097,8 @@ enum razwi_event_sources { ...@@ -2097,7 +2097,8 @@ enum razwi_event_sources {
RAZWI_PDMA, RAZWI_PDMA,
RAZWI_NIC, RAZWI_NIC,
RAZWI_DEC, RAZWI_DEC,
RAZWI_ROT RAZWI_ROT,
RAZWI_ARC_FARM
}; };
struct hbm_mc_error_causes { struct hbm_mc_error_causes {
...@@ -8049,6 +8050,9 @@ static enum gaudi2_engine_id gaudi2_razwi_calc_engine_id(struct hl_device *hdev, ...@@ -8049,6 +8050,9 @@ static enum gaudi2_engine_id gaudi2_razwi_calc_engine_id(struct hl_device *hdev,
case RAZWI_ROT: case RAZWI_ROT:
return GAUDI2_ENGINE_ID_ROT_0 + module_idx; return GAUDI2_ENGINE_ID_ROT_0 + module_idx;
case RAZWI_ARC_FARM:
return GAUDI2_ENGINE_ID_ARC_FARM;
default: default:
return GAUDI2_ENGINE_ID_SIZE; return GAUDI2_ENGINE_ID_SIZE;
} }
...@@ -8158,6 +8162,11 @@ static void gaudi2_ack_module_razwi_event_handler(struct hl_device *hdev, ...@@ -8158,6 +8162,11 @@ static void gaudi2_ack_module_razwi_event_handler(struct hl_device *hdev,
lbw_rtr_id = gaudi2_rot_initiator_lbw_rtr_id[module_idx]; lbw_rtr_id = gaudi2_rot_initiator_lbw_rtr_id[module_idx];
sprintf(initiator_name, "ROT_%u", module_idx); sprintf(initiator_name, "ROT_%u", module_idx);
break; break;
case RAZWI_ARC_FARM:
lbw_rtr_id = DCORE1_RTR5;
hbw_rtr_id = DCORE1_RTR7;
sprintf(initiator_name, "ARC_FARM_%u", module_idx);
break;
default: default:
return; return;
} }
...@@ -8611,7 +8620,7 @@ static int gaudi2_handle_qman_err(struct hl_device *hdev, u16 event_type, u64 *e ...@@ -8611,7 +8620,7 @@ static int gaudi2_handle_qman_err(struct hl_device *hdev, u16 event_type, u64 *e
return error_count; return error_count;
} }
static int gaudi2_handle_arc_farm_sei_err(struct hl_device *hdev, u16 event_type) static int gaudi2_handle_arc_farm_sei_err(struct hl_device *hdev, u16 event_type, u64 *event_mask)
{ {
u32 i, sts_val, sts_clr_val, error_count = 0, arc_farm; u32 i, sts_val, sts_clr_val, error_count = 0, arc_farm;
...@@ -8633,6 +8642,7 @@ static int gaudi2_handle_arc_farm_sei_err(struct hl_device *hdev, u16 event_type ...@@ -8633,6 +8642,7 @@ static int gaudi2_handle_arc_farm_sei_err(struct hl_device *hdev, u16 event_type
sts_clr_val); sts_clr_val);
} }
gaudi2_ack_module_razwi_event_handler(hdev, RAZWI_ARC_FARM, 0, 0, event_mask);
hl_check_for_glbl_errors(hdev); hl_check_for_glbl_errors(hdev);
return error_count; return error_count;
...@@ -9619,7 +9629,7 @@ static void gaudi2_handle_eqe(struct hl_device *hdev, struct hl_eq_entry *eq_ent ...@@ -9619,7 +9629,7 @@ static void gaudi2_handle_eqe(struct hl_device *hdev, struct hl_eq_entry *eq_ent
break; break;
case GAUDI2_EVENT_ARC_AXI_ERROR_RESPONSE_0: case GAUDI2_EVENT_ARC_AXI_ERROR_RESPONSE_0:
error_count = gaudi2_handle_arc_farm_sei_err(hdev, event_type); error_count = gaudi2_handle_arc_farm_sei_err(hdev, event_type, &event_mask);
event_mask |= HL_NOTIFIER_EVENT_USER_ENGINE_ERR; event_mask |= HL_NOTIFIER_EVENT_USER_ENGINE_ERR;
break; break;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment