162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci * 362306a36Sopenharmony_ci * Copyright 2020-2022 HabanaLabs, Ltd. 462306a36Sopenharmony_ci * All Rights Reserved. 562306a36Sopenharmony_ci * 662306a36Sopenharmony_ci */ 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci#ifndef GAUDI2_MASKS_H_ 962306a36Sopenharmony_ci#define GAUDI2_MASKS_H_ 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci#include "../include/gaudi2/asic_reg/gaudi2_regs.h" 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci/* Useful masks for bits in various registers */ 1462306a36Sopenharmony_ci#define QMAN_GLBL_ERR_CFG_MSG_EN_MASK \ 1562306a36Sopenharmony_ci ((0xF << PDMA0_QM_GLBL_ERR_CFG_PQF_ERR_MSG_EN_SHIFT) | \ 1662306a36Sopenharmony_ci (0x1F << PDMA0_QM_GLBL_ERR_CFG_CQF_ERR_MSG_EN_SHIFT) | \ 1762306a36Sopenharmony_ci (0x1F << PDMA0_QM_GLBL_ERR_CFG_CP_ERR_MSG_EN_SHIFT)) 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci#define QMAN_GLBL_ERR_CFG_STOP_ON_ERR_EN_MASK \ 2062306a36Sopenharmony_ci ((0xF << PDMA0_QM_GLBL_ERR_CFG_PQF_STOP_ON_ERR_SHIFT) | \ 2162306a36Sopenharmony_ci (0x1F << PDMA0_QM_GLBL_ERR_CFG_CQF_STOP_ON_ERR_SHIFT) | \ 2262306a36Sopenharmony_ci (0x1F << PDMA0_QM_GLBL_ERR_CFG_CP_STOP_ON_ERR_SHIFT) | \ 2362306a36Sopenharmony_ci (0x1 << PDMA0_QM_GLBL_ERR_CFG_ARB_STOP_ON_ERR_SHIFT)) 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci#define QMAN_GLBL_ERR_CFG1_MSG_EN_MASK \ 2662306a36Sopenharmony_ci (0x1 << PDMA0_QM_GLBL_ERR_CFG1_CQF_ERR_MSG_EN_SHIFT) 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci#define QMAN_GLBL_ERR_CFG1_STOP_ON_ERR_EN_MASK \ 2962306a36Sopenharmony_ci ((0x1 << PDMA0_QM_GLBL_ERR_CFG1_CQF_STOP_ON_ERR_SHIFT) | \ 3062306a36Sopenharmony_ci (0x1 << PDMA0_QM_GLBL_ERR_CFG1_ARC_STOP_ON_ERR_SHIFT)) 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci#define QM_PQC_LBW_WDATA \ 3362306a36Sopenharmony_ci ((1 << DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_VAL_SHIFT) | \ 3462306a36Sopenharmony_ci (1 << DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_INC_SHIFT)) 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci#define QMAN_MAKE_TRUSTED \ 3762306a36Sopenharmony_ci ((0xF << PDMA0_QM_GLBL_PROT_PQF_SHIFT) | \ 3862306a36Sopenharmony_ci (0x1 << PDMA0_QM_GLBL_PROT_ERR_SHIFT) | \ 3962306a36Sopenharmony_ci (0x1 << PDMA0_QM_GLBL_PROT_PQC_SHIFT)) 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci#define QMAN_MAKE_TRUSTED_TEST_MODE \ 4262306a36Sopenharmony_ci ((0xF << PDMA0_QM_GLBL_PROT_PQF_SHIFT) | \ 4362306a36Sopenharmony_ci (0xF << PDMA0_QM_GLBL_PROT_CQF_SHIFT) | \ 4462306a36Sopenharmony_ci (0xF << PDMA0_QM_GLBL_PROT_CP_SHIFT) | \ 4562306a36Sopenharmony_ci (0x1 << PDMA0_QM_GLBL_PROT_ERR_SHIFT) | \ 4662306a36Sopenharmony_ci (0x1 << PDMA0_QM_GLBL_PROT_PQC_SHIFT)) 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ci#define QMAN_ENABLE \ 4962306a36Sopenharmony_ci ((0xF << PDMA0_QM_GLBL_CFG0_PQF_EN_SHIFT) | \ 5062306a36Sopenharmony_ci (0x1F << PDMA0_QM_GLBL_CFG0_CQF_EN_SHIFT) | \ 5162306a36Sopenharmony_ci (0x1F << PDMA0_QM_GLBL_CFG0_CP_EN_SHIFT) | \ 5262306a36Sopenharmony_ci (0x1 << PDMA0_QM_GLBL_CFG0_ARC_CQF_EN_SHIFT)) 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ci#define PDMA0_QMAN_ENABLE \ 5562306a36Sopenharmony_ci ((0x3 << PDMA0_QM_GLBL_CFG0_PQF_EN_SHIFT) | \ 5662306a36Sopenharmony_ci (0x1F << PDMA0_QM_GLBL_CFG0_CQF_EN_SHIFT) | \ 5762306a36Sopenharmony_ci (0x1F << PDMA0_QM_GLBL_CFG0_CP_EN_SHIFT) | \ 5862306a36Sopenharmony_ci (0x1 << PDMA0_QM_GLBL_CFG0_ARC_CQF_EN_SHIFT)) 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ci#define PDMA1_QMAN_ENABLE \ 6162306a36Sopenharmony_ci ((0x1 << PDMA0_QM_GLBL_CFG0_PQF_EN_SHIFT) | \ 6262306a36Sopenharmony_ci (0x1F << PDMA0_QM_GLBL_CFG0_CQF_EN_SHIFT) | \ 6362306a36Sopenharmony_ci (0x1F << PDMA0_QM_GLBL_CFG0_CP_EN_SHIFT) | \ 6462306a36Sopenharmony_ci (0x1 << PDMA0_QM_GLBL_CFG0_ARC_CQF_EN_SHIFT)) 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ci/* QM_IDLE_MASK is valid for all engines QM idle check */ 6762306a36Sopenharmony_ci#define QM_IDLE_MASK (DCORE0_EDMA0_QM_GLBL_STS0_PQF_IDLE_MASK | \ 6862306a36Sopenharmony_ci DCORE0_EDMA0_QM_GLBL_STS0_CQF_IDLE_MASK | \ 6962306a36Sopenharmony_ci DCORE0_EDMA0_QM_GLBL_STS0_CP_IDLE_MASK) 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ci#define QM_ARC_IDLE_MASK DCORE0_EDMA0_QM_GLBL_STS1_ARC_CQF_IDLE_MASK 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ci#define MME_ARCH_IDLE_MASK \ 7462306a36Sopenharmony_ci (DCORE0_MME_CTRL_LO_ARCH_STATUS_SB_IN_EMPTY_MASK | \ 7562306a36Sopenharmony_ci DCORE0_MME_CTRL_LO_ARCH_STATUS_AGU_COUT_SM_IDLE_MASK | \ 7662306a36Sopenharmony_ci DCORE0_MME_CTRL_LO_ARCH_STATUS_WBC_AXI_IDLE_MASK | \ 7762306a36Sopenharmony_ci DCORE0_MME_CTRL_LO_ARCH_STATUS_SB_IN_AXI_IDLE_MASK | \ 7862306a36Sopenharmony_ci DCORE0_MME_CTRL_LO_ARCH_STATUS_QM_IDLE_MASK | \ 7962306a36Sopenharmony_ci DCORE0_MME_CTRL_LO_ARCH_STATUS_QM_RDY_MASK) 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ci#define TPC_IDLE_MASK (DCORE0_TPC0_CFG_STATUS_SCALAR_PIPE_EMPTY_MASK | \ 8262306a36Sopenharmony_ci DCORE0_TPC0_CFG_STATUS_IQ_EMPTY_MASK | \ 8362306a36Sopenharmony_ci DCORE0_TPC0_CFG_STATUS_SB_EMPTY_MASK | \ 8462306a36Sopenharmony_ci DCORE0_TPC0_CFG_STATUS_QM_IDLE_MASK | \ 8562306a36Sopenharmony_ci DCORE0_TPC0_CFG_STATUS_QM_RDY_MASK) 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ci#define DCORE0_TPC0_QM_CGM_STS_AGENT_IDLE_MASK 0x100 8862306a36Sopenharmony_ci 8962306a36Sopenharmony_ci#define DCORE0_TPC0_EML_CFG_DBG_CNT_DBG_EXIT_MASK 0x40 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_ci/* CGM_IDLE_MASK is valid for all engines CGM idle check */ 9262306a36Sopenharmony_ci#define CGM_IDLE_MASK DCORE0_TPC0_QM_CGM_STS_AGENT_IDLE_MASK 9362306a36Sopenharmony_ci 9462306a36Sopenharmony_ci#define QM_GLBL_CFG1_PQF_STOP PDMA0_QM_GLBL_CFG1_PQF_STOP_MASK 9562306a36Sopenharmony_ci#define QM_GLBL_CFG1_CQF_STOP PDMA0_QM_GLBL_CFG1_CQF_STOP_MASK 9662306a36Sopenharmony_ci#define QM_GLBL_CFG1_CP_STOP PDMA0_QM_GLBL_CFG1_CP_STOP_MASK 9762306a36Sopenharmony_ci#define QM_GLBL_CFG1_PQF_FLUSH PDMA0_QM_GLBL_CFG1_PQF_FLUSH_MASK 9862306a36Sopenharmony_ci#define QM_GLBL_CFG1_CQF_FLUSH PDMA0_QM_GLBL_CFG1_CQF_FLUSH_MASK 9962306a36Sopenharmony_ci#define QM_GLBL_CFG1_CP_FLUSH PDMA0_QM_GLBL_CFG1_CP_FLUSH_MASK 10062306a36Sopenharmony_ci 10162306a36Sopenharmony_ci#define QM_GLBL_CFG2_ARC_CQF_STOP PDMA0_QM_GLBL_CFG2_ARC_CQF_STOP_MASK 10262306a36Sopenharmony_ci#define QM_GLBL_CFG2_ARC_CQF_FLUSH PDMA0_QM_GLBL_CFG2_ARC_CQF_FLUSH_MASK 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_ci#define QM_ARB_ERR_MSG_EN_CHOISE_OVF_MASK 0x1 10562306a36Sopenharmony_ci#define QM_ARB_ERR_MSG_EN_CHOISE_WDT_MASK 0x2 10662306a36Sopenharmony_ci#define QM_ARB_ERR_MSG_EN_AXI_LBW_ERR_MASK 0x4 10762306a36Sopenharmony_ci 10862306a36Sopenharmony_ci#define QM_ARB_ERR_MSG_EN_MASK (\ 10962306a36Sopenharmony_ci QM_ARB_ERR_MSG_EN_CHOISE_OVF_MASK |\ 11062306a36Sopenharmony_ci QM_ARB_ERR_MSG_EN_CHOISE_WDT_MASK |\ 11162306a36Sopenharmony_ci QM_ARB_ERR_MSG_EN_AXI_LBW_ERR_MASK) 11262306a36Sopenharmony_ci 11362306a36Sopenharmony_ci#define PCIE_AUX_FLR_CTRL_HW_CTRL_MASK 0x1 11462306a36Sopenharmony_ci#define PCIE_AUX_FLR_CTRL_INT_MASK_MASK 0x2 11562306a36Sopenharmony_ci 11662306a36Sopenharmony_ci#define MME_ACC_INTR_MASK_WBC_ERR_RESP_MASK GENMASK(1, 0) 11762306a36Sopenharmony_ci#define MME_ACC_INTR_MASK_AP_SRC_POS_INF_MASK BIT(2) 11862306a36Sopenharmony_ci#define MME_ACC_INTR_MASK_AP_SRC_NEG_INF_MASK BIT(3) 11962306a36Sopenharmony_ci#define MME_ACC_INTR_MASK_AP_SRC_NAN_MASK BIT(4) 12062306a36Sopenharmony_ci#define MME_ACC_INTR_MASK_AP_RESULT_POS_INF_MASK BIT(5) 12162306a36Sopenharmony_ci#define MME_ACC_INTR_MASK_AP_RESULT_NEG_INF_MASK BIT(6) 12262306a36Sopenharmony_ci 12362306a36Sopenharmony_ci#define SM_CQ_L2H_MASK_VAL 0xFFFFFFFFFC000000ull 12462306a36Sopenharmony_ci#define SM_CQ_L2H_CMPR_VAL 0x1000007FFC000000ull 12562306a36Sopenharmony_ci#define SM_CQ_L2H_LOW_MASK GENMASK(31, 20) 12662306a36Sopenharmony_ci#define SM_CQ_L2H_LOW_SHIFT 20 12762306a36Sopenharmony_ci 12862306a36Sopenharmony_ci#define MMU_STATIC_MULTI_PAGE_SIZE_HOP4_PAGE_SIZE_MASK \ 12962306a36Sopenharmony_ci REG_FIELD_MASK(DCORE0_HMMU0_MMU_STATIC_MULTI_PAGE_SIZE, HOP4_PAGE_SIZE) 13062306a36Sopenharmony_ci#define STLB_HOP_CONFIGURATION_ONLY_LARGE_PAGE_MASK \ 13162306a36Sopenharmony_ci REG_FIELD_MASK(DCORE0_HMMU0_STLB_HOP_CONFIGURATION, ONLY_LARGE_PAGE) 13262306a36Sopenharmony_ci 13362306a36Sopenharmony_ci#define AXUSER_HB_SEC_ASID_MASK 0x3FF 13462306a36Sopenharmony_ci#define AXUSER_HB_SEC_MMBP_MASK 0x400 13562306a36Sopenharmony_ci 13662306a36Sopenharmony_ci#define MMUBP_ASID_MASK (AXUSER_HB_SEC_ASID_MASK | AXUSER_HB_SEC_MMBP_MASK) 13762306a36Sopenharmony_ci 13862306a36Sopenharmony_ci#define ROT_MSS_HALT_WBC_MASK BIT(0) 13962306a36Sopenharmony_ci#define ROT_MSS_HALT_RSB_MASK BIT(1) 14062306a36Sopenharmony_ci#define ROT_MSS_HALT_MRSB_MASK BIT(2) 14162306a36Sopenharmony_ci 14262306a36Sopenharmony_ci#define PCIE_DBI_MSIX_ADDRESS_MATCH_LOW_OFF_MSIX_ADDRESS_MATCH_EN_SHIFT 0 14362306a36Sopenharmony_ci#define PCIE_DBI_MSIX_ADDRESS_MATCH_LOW_OFF_MSIX_ADDRESS_MATCH_EN_MASK 0x1 14462306a36Sopenharmony_ci 14562306a36Sopenharmony_ci#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_SIGN_SHIFT 15 14662306a36Sopenharmony_ci#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_SIGN_MASK 0x8000 14762306a36Sopenharmony_ci 14862306a36Sopenharmony_ci#define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_AXI_ERR_INTR_SHIFT 0 14962306a36Sopenharmony_ci#define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_AXI_ERR_INTR_MASK 0x1 15062306a36Sopenharmony_ci#define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_AXI_LBW_ERR_INTR_SHIFT 1 15162306a36Sopenharmony_ci#define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_AXI_LBW_ERR_INTR_MASK 0x2 15262306a36Sopenharmony_ci#define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_BAD_ACCESS_INTR_SHIFT 2 15362306a36Sopenharmony_ci#define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_BAD_ACCESS_INTR_MASK 0x4 15462306a36Sopenharmony_ci#define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_AXI_ERR_INTR_MASK_SHIFT 3 15562306a36Sopenharmony_ci#define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_AXI_ERR_INTR_MASK_MASK 0x8 15662306a36Sopenharmony_ci#define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_AXI_LBW_ERR_INTR_MASK_SHIFT 4 15762306a36Sopenharmony_ci#define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_AXI_LBW_ERR_INTR_MASK_MASK 0x10 15862306a36Sopenharmony_ci#define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_BAD_ACCESS_INTR_MASK_SHIFT 5 15962306a36Sopenharmony_ci#define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_BAD_ACCESS_INTR_MASK_MASK 0x20 16062306a36Sopenharmony_ci 16162306a36Sopenharmony_ci#endif /* GAUDI2_MASKS_H_ */ 162