/* SPDX-License-Identifier: GPL-2.0 */ /* * Copyright (C) 2025, Advanced Micro Devices, Inc. */ #ifndef _AMDXDNA_ERROR_H_ #define _AMDXDNA_ERROR_H_ #include #include #define AMDXDNA_ERR_DRV_AIE 4 #define AMDXDNA_ERR_SEV_CRITICAL 3 #define AMDXDNA_ERR_CLASS_AIE 2 #define AMDXDNA_ERR_NUM_MASK GENMASK_U64(15, 0) #define AMDXDNA_ERR_DRV_MASK GENMASK_U64(23, 16) #define AMDXDNA_ERR_SEV_MASK GENMASK_U64(31, 24) #define AMDXDNA_ERR_MOD_MASK GENMASK_U64(39, 32) #define AMDXDNA_ERR_CLASS_MASK GENMASK_U64(47, 40) enum amdxdna_error_num { AMDXDNA_ERROR_NUM_AIE_SATURATION = 3, AMDXDNA_ERROR_NUM_AIE_FP, AMDXDNA_ERROR_NUM_AIE_STREAM, AMDXDNA_ERROR_NUM_AIE_ACCESS, AMDXDNA_ERROR_NUM_AIE_BUS, AMDXDNA_ERROR_NUM_AIE_INSTRUCTION, AMDXDNA_ERROR_NUM_AIE_ECC, AMDXDNA_ERROR_NUM_AIE_LOCK, AMDXDNA_ERROR_NUM_AIE_DMA, AMDXDNA_ERROR_NUM_AIE_MEM_PARITY, AMDXDNA_ERROR_NUM_UNKNOWN = 15, }; enum amdxdna_error_module { AMDXDNA_ERROR_MODULE_AIE_CORE = 3, AMDXDNA_ERROR_MODULE_AIE_MEMORY, AMDXDNA_ERROR_MODULE_AIE_SHIM, AMDXDNA_ERROR_MODULE_AIE_NOC, AMDXDNA_ERROR_MODULE_AIE_PL, AMDXDNA_ERROR_MODULE_UNKNOWN = 8, }; #define AMDXDNA_ERROR_ENCODE(err_num, err_mod) \ (FIELD_PREP(AMDXDNA_ERR_NUM_MASK, err_num) | \ FIELD_PREP_CONST(AMDXDNA_ERR_DRV_MASK, AMDXDNA_ERR_DRV_AIE) | \ FIELD_PREP_CONST(AMDXDNA_ERR_SEV_MASK, AMDXDNA_ERR_SEV_CRITICAL) | \ FIELD_PREP(AMDXDNA_ERR_MOD_MASK, err_mod) | \ FIELD_PREP_CONST(AMDXDNA_ERR_CLASS_MASK, AMDXDNA_ERR_CLASS_AIE)) #define AMDXDNA_EXTRA_ERR_COL_MASK GENMASK_U64(7, 0) #define AMDXDNA_EXTRA_ERR_ROW_MASK GENMASK_U64(15, 8) #define AMDXDNA_EXTRA_ERR_ENCODE(row, col) \ (FIELD_PREP(AMDXDNA_EXTRA_ERR_COL_MASK, col) | \ FIELD_PREP(AMDXDNA_EXTRA_ERR_ROW_MASK, row)) #endif /* _AMDXDNA_ERROR_H_ */