Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0
0002  *
0003  * Copyright 2020-2022 HabanaLabs, Ltd.
0004  * All Rights Reserved.
0005  *
0006  */
0007 
0008 #ifndef GAUDI2_MASKS_H_
0009 #define GAUDI2_MASKS_H_
0010 
0011 #include "../include/gaudi2/asic_reg/gaudi2_regs.h"
0012 
0013 /* Useful masks for bits in various registers */
0014 #define QMAN_GLBL_ERR_CFG_MSG_EN_MASK   \
0015     ((0xF << PDMA0_QM_GLBL_ERR_CFG_PQF_ERR_MSG_EN_SHIFT) | \
0016     (0x1F << PDMA0_QM_GLBL_ERR_CFG_CQF_ERR_MSG_EN_SHIFT) | \
0017     (0x1F << PDMA0_QM_GLBL_ERR_CFG_CP_ERR_MSG_EN_SHIFT))
0018 
0019 #define QMAN_GLBL_ERR_CFG_STOP_ON_ERR_EN_MASK   \
0020     ((0xF << PDMA0_QM_GLBL_ERR_CFG_PQF_STOP_ON_ERR_SHIFT) | \
0021     (0x1F << PDMA0_QM_GLBL_ERR_CFG_CQF_STOP_ON_ERR_SHIFT) | \
0022     (0x1F << PDMA0_QM_GLBL_ERR_CFG_CP_STOP_ON_ERR_SHIFT) | \
0023     (0x1 << PDMA0_QM_GLBL_ERR_CFG_ARB_STOP_ON_ERR_SHIFT))
0024 
0025 #define QMAN_GLBL_ERR_CFG1_MSG_EN_MASK  \
0026     (0x1 << PDMA0_QM_GLBL_ERR_CFG1_CQF_ERR_MSG_EN_SHIFT)
0027 
0028 #define QMAN_GLBL_ERR_CFG1_STOP_ON_ERR_EN_MASK  \
0029     ((0x1 << PDMA0_QM_GLBL_ERR_CFG1_CQF_STOP_ON_ERR_SHIFT) | \
0030     (0x1 << PDMA0_QM_GLBL_ERR_CFG1_ARC_STOP_ON_ERR_SHIFT))
0031 
0032 #define QM_PQC_LBW_WDATA    \
0033     ((1 << DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_VAL_SHIFT) | \
0034     (1 << DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_INC_SHIFT))
0035 
0036 #define QMAN_MAKE_TRUSTED   \
0037     ((0xF << PDMA0_QM_GLBL_PROT_PQF_SHIFT) | \
0038     (0x1 << PDMA0_QM_GLBL_PROT_ERR_SHIFT) | \
0039     (0x1 << PDMA0_QM_GLBL_PROT_PQC_SHIFT))
0040 
0041 #define QMAN_MAKE_TRUSTED_TEST_MODE \
0042     ((0xF << PDMA0_QM_GLBL_PROT_PQF_SHIFT) | \
0043     (0xF << PDMA0_QM_GLBL_PROT_CQF_SHIFT) | \
0044     (0xF << PDMA0_QM_GLBL_PROT_CP_SHIFT) | \
0045     (0x1 << PDMA0_QM_GLBL_PROT_ERR_SHIFT) | \
0046     (0x1 << PDMA0_QM_GLBL_PROT_PQC_SHIFT))
0047 
0048 #define QMAN_ENABLE     \
0049     ((0xF << PDMA0_QM_GLBL_CFG0_PQF_EN_SHIFT) | \
0050     (0x1F << PDMA0_QM_GLBL_CFG0_CQF_EN_SHIFT) | \
0051     (0x1F << PDMA0_QM_GLBL_CFG0_CP_EN_SHIFT)  | \
0052     (0x1 << PDMA0_QM_GLBL_CFG0_ARC_CQF_EN_SHIFT))
0053 
0054 #define PDMA1_QMAN_ENABLE   \
0055     ((0x3 << PDMA0_QM_GLBL_CFG0_PQF_EN_SHIFT) | \
0056     (0x1F << PDMA0_QM_GLBL_CFG0_CQF_EN_SHIFT) | \
0057     (0x1F << PDMA0_QM_GLBL_CFG0_CP_EN_SHIFT)  | \
0058     (0x1 << PDMA0_QM_GLBL_CFG0_ARC_CQF_EN_SHIFT))
0059 
0060 /* QM_IDLE_MASK is valid for all engines QM idle check */
0061 #define QM_IDLE_MASK    (DCORE0_EDMA0_QM_GLBL_STS0_PQF_IDLE_MASK | \
0062             DCORE0_EDMA0_QM_GLBL_STS0_CQF_IDLE_MASK | \
0063             DCORE0_EDMA0_QM_GLBL_STS0_CP_IDLE_MASK)
0064 
0065 #define QM_ARC_IDLE_MASK    DCORE0_EDMA0_QM_GLBL_STS1_ARC_CQF_IDLE_MASK
0066 
0067 #define MME_ARCH_IDLE_MASK  \
0068             (DCORE0_MME_CTRL_LO_ARCH_STATUS_SB_IN_EMPTY_MASK | \
0069             DCORE0_MME_CTRL_LO_ARCH_STATUS_AGU_COUT_SM_IDLE_MASK | \
0070             DCORE0_MME_CTRL_LO_ARCH_STATUS_WBC_AXI_IDLE_MASK | \
0071             DCORE0_MME_CTRL_LO_ARCH_STATUS_SB_IN_AXI_IDLE_MASK | \
0072             DCORE0_MME_CTRL_LO_ARCH_STATUS_QM_IDLE_MASK | \
0073             DCORE0_MME_CTRL_LO_ARCH_STATUS_QM_RDY_MASK)
0074 
0075 #define TPC_IDLE_MASK   (DCORE0_TPC0_CFG_STATUS_SCALAR_PIPE_EMPTY_MASK | \
0076             DCORE0_TPC0_CFG_STATUS_VECTOR_PIPE_EMPTY_MASK | \
0077             DCORE0_TPC0_CFG_STATUS_IQ_EMPTY_MASK | \
0078             DCORE0_TPC0_CFG_STATUS_SB_EMPTY_MASK | \
0079             DCORE0_TPC0_CFG_STATUS_QM_IDLE_MASK | \
0080             DCORE0_TPC0_CFG_STATUS_QM_RDY_MASK)
0081 
0082 #define DCORE0_TPC0_QM_CGM_STS_AGENT_IDLE_MASK 0x100
0083 
0084 /* CGM_IDLE_MASK is valid for all engines CGM idle check */
0085 #define CGM_IDLE_MASK   DCORE0_TPC0_QM_CGM_STS_AGENT_IDLE_MASK
0086 
0087 #define QM_GLBL_CFG1_PQF_STOP       PDMA0_QM_GLBL_CFG1_PQF_STOP_MASK
0088 #define QM_GLBL_CFG1_CQF_STOP       PDMA0_QM_GLBL_CFG1_CQF_STOP_MASK
0089 #define QM_GLBL_CFG1_CP_STOP        PDMA0_QM_GLBL_CFG1_CP_STOP_MASK
0090 #define QM_GLBL_CFG1_PQF_FLUSH      PDMA0_QM_GLBL_CFG1_PQF_FLUSH_MASK
0091 #define QM_GLBL_CFG1_CQF_FLUSH      PDMA0_QM_GLBL_CFG1_CQF_FLUSH_MASK
0092 #define QM_GLBL_CFG1_CP_FLUSH       PDMA0_QM_GLBL_CFG1_CP_FLUSH_MASK
0093 
0094 #define QM_GLBL_CFG2_ARC_CQF_STOP   PDMA0_QM_GLBL_CFG2_ARC_CQF_STOP_MASK
0095 #define QM_GLBL_CFG2_ARC_CQF_FLUSH  PDMA0_QM_GLBL_CFG2_ARC_CQF_FLUSH_MASK
0096 
0097 #define QM_ARB_ERR_MSG_EN_CHOISE_OVF_MASK                            0x1
0098 #define QM_ARB_ERR_MSG_EN_CHOISE_WDT_MASK                            0x2
0099 #define QM_ARB_ERR_MSG_EN_AXI_LBW_ERR_MASK                           0x4
0100 
0101 #define QM_ARB_ERR_MSG_EN_MASK      (\
0102                     QM_ARB_ERR_MSG_EN_CHOISE_OVF_MASK |\
0103                     QM_ARB_ERR_MSG_EN_CHOISE_WDT_MASK |\
0104                     QM_ARB_ERR_MSG_EN_AXI_LBW_ERR_MASK)
0105 
0106 #define PCIE_AUX_FLR_CTRL_HW_CTRL_MASK      0x1
0107 #define PCIE_AUX_FLR_CTRL_INT_MASK_MASK     0x2
0108 
0109 #define MME_ACC_INTR_MASK_WBC_ERR_RESP_MASK     GENMASK(1, 0)
0110 #define MME_ACC_INTR_MASK_AP_SRC_POS_INF_MASK       BIT(2)
0111 #define MME_ACC_INTR_MASK_AP_SRC_NEG_INF_MASK       BIT(3)
0112 #define MME_ACC_INTR_MASK_AP_SRC_NAN_MASK       BIT(4)
0113 #define MME_ACC_INTR_MASK_AP_RESULT_POS_INF_MASK    BIT(5)
0114 #define MME_ACC_INTR_MASK_AP_RESULT_NEG_INF_MASK    BIT(6)
0115 
0116 #define SM_CQ_L2H_MASK_VAL      0xFFFFFFFFFC000000ull
0117 #define SM_CQ_L2H_CMPR_VAL      0x1000007FFC000000ull
0118 #define SM_CQ_L2H_LOW_MASK      GENMASK(31, 20)
0119 #define SM_CQ_L2H_LOW_SHIFT     20
0120 
0121 #define MMU_STATIC_MULTI_PAGE_SIZE_HOP4_PAGE_SIZE_MASK \
0122     REG_FIELD_MASK(DCORE0_HMMU0_MMU_STATIC_MULTI_PAGE_SIZE, HOP4_PAGE_SIZE)
0123 #define STLB_HOP_CONFIGURATION_ONLY_LARGE_PAGE_MASK \
0124     REG_FIELD_MASK(DCORE0_HMMU0_STLB_HOP_CONFIGURATION, ONLY_LARGE_PAGE)
0125 
0126 #define AXUSER_HB_SEC_ASID_MASK                0x3FF
0127 #define AXUSER_HB_SEC_MMBP_MASK                0x400
0128 
0129 #define MMUBP_ASID_MASK (AXUSER_HB_SEC_ASID_MASK | AXUSER_HB_SEC_MMBP_MASK)
0130 
0131 #define ROT_MSS_HALT_WBC_MASK   BIT(0)
0132 #define ROT_MSS_HALT_RSB_MASK   BIT(1)
0133 #define ROT_MSS_HALT_MRSB_MASK  BIT(2)
0134 
0135 #define PCIE_DBI_MSIX_ADDRESS_MATCH_LOW_OFF_MSIX_ADDRESS_MATCH_EN_SHIFT 0
0136 #define PCIE_DBI_MSIX_ADDRESS_MATCH_LOW_OFF_MSIX_ADDRESS_MATCH_EN_MASK  0x1
0137 
0138 #define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_SIGN_SHIFT    15
0139 #define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_SIGN_MASK     0x8000
0140 
0141 #endif /* GAUDI2_MASKS_H_ */