Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0
0002  *
0003  * Copyright 2016-2020 HabanaLabs, Ltd.
0004  * All Rights Reserved.
0005  *
0006  */
0007 
0008 #ifndef GAUDI_MASKS_H_
0009 #define GAUDI_MASKS_H_
0010 
0011 #include "asic_reg/gaudi_regs.h"
0012 
0013 /* Useful masks for bits in various registers */
0014 #define PCI_DMA_QMAN_ENABLE     (\
0015     (FIELD_PREP(DMA0_QM_GLBL_CFG0_PQF_EN_MASK, 0xF)) | \
0016     (FIELD_PREP(DMA0_QM_GLBL_CFG0_CQF_EN_MASK, 0xF)) | \
0017     (FIELD_PREP(DMA0_QM_GLBL_CFG0_CP_EN_MASK, 0xF)))
0018 
0019 #define QMAN_EXTERNAL_MAKE_TRUSTED  (\
0020     (FIELD_PREP(DMA0_QM_GLBL_PROT_PQF_MASK, 0xF)) | \
0021     (FIELD_PREP(DMA0_QM_GLBL_PROT_CQF_MASK, 0xF)) | \
0022     (FIELD_PREP(DMA0_QM_GLBL_PROT_CP_MASK, 0xF)) | \
0023     (FIELD_PREP(DMA0_QM_GLBL_PROT_ERR_MASK, 0x1)))
0024 
0025 #define QMAN_INTERNAL_MAKE_TRUSTED  (\
0026     (FIELD_PREP(DMA0_QM_GLBL_PROT_PQF_MASK, 0xF)) | \
0027     (FIELD_PREP(DMA0_QM_GLBL_PROT_ERR_MASK, 0x1)))
0028 
0029 #define HBM_DMA_QMAN_ENABLE     (\
0030     (FIELD_PREP(DMA0_QM_GLBL_CFG0_PQF_EN_MASK, 0xF)) | \
0031     (FIELD_PREP(DMA0_QM_GLBL_CFG0_CQF_EN_MASK, 0x1F)) | \
0032     (FIELD_PREP(DMA0_QM_GLBL_CFG0_CP_EN_MASK, 0x1F)))
0033 
0034 #define QMAN_MME_ENABLE     (\
0035     (FIELD_PREP(MME0_QM_GLBL_CFG0_PQF_EN_MASK, 0xF)) | \
0036     (FIELD_PREP(MME0_QM_GLBL_CFG0_CQF_EN_MASK, 0x1F)) | \
0037     (FIELD_PREP(MME0_QM_GLBL_CFG0_CP_EN_MASK, 0x1F)))
0038 
0039 #define QMAN_TPC_ENABLE     (\
0040     (FIELD_PREP(TPC0_QM_GLBL_CFG0_PQF_EN_MASK, 0xF)) | \
0041     (FIELD_PREP(TPC0_QM_GLBL_CFG0_CQF_EN_MASK, 0x1F)) | \
0042     (FIELD_PREP(TPC0_QM_GLBL_CFG0_CP_EN_MASK, 0x1F)))
0043 
0044 #define NIC_QMAN_ENABLE     (\
0045     (FIELD_PREP(NIC0_QM0_GLBL_CFG0_PQF_EN_MASK, 0xF)) | \
0046     (FIELD_PREP(NIC0_QM0_GLBL_CFG0_CQF_EN_MASK, 0xF)) | \
0047     (FIELD_PREP(NIC0_QM0_GLBL_CFG0_CP_EN_MASK, 0xF)))
0048 
0049 #define QMAN_UPPER_CP_CGM_PWR_GATE_EN   (\
0050     (FIELD_PREP(DMA0_QM_CGM_CFG_IDLE_TH_MASK, 0x20)) | \
0051     (FIELD_PREP(DMA0_QM_CGM_CFG_G2F_TH_MASK, 0xA)) | \
0052     (FIELD_PREP(DMA0_QM_CGM_CFG_CP_IDLE_MASK_MASK, 0x10)) | \
0053     (FIELD_PREP(DMA0_QM_CGM_CFG_EN_MASK, 0x1)))
0054 
0055 #define QMAN_COMMON_CP_CGM_PWR_GATE_EN  (\
0056     (FIELD_PREP(DMA0_QM_CGM_CFG_IDLE_TH_MASK, 0x20)) | \
0057     (FIELD_PREP(DMA0_QM_CGM_CFG_G2F_TH_MASK, 0xA)) | \
0058     (FIELD_PREP(DMA0_QM_CGM_CFG_CP_IDLE_MASK_MASK, 0xF)) | \
0059     (FIELD_PREP(DMA0_QM_CGM_CFG_EN_MASK, 0x1)))
0060 
0061 #define PCI_DMA_QMAN_GLBL_ERR_CFG_MSG_EN_MASK   (\
0062     (FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_PQF_ERR_MSG_EN_MASK, 0xF)) | \
0063     (FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_CQF_ERR_MSG_EN_MASK, 0xF)) | \
0064     (FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_CP_ERR_MSG_EN_MASK, 0xF)))
0065 
0066 #define PCI_DMA_QMAN_GLBL_ERR_CFG_STOP_ON_ERR_EN_MASK   (\
0067     (FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_PQF_STOP_ON_ERR_MASK, 0xF)) | \
0068     (FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_CQF_STOP_ON_ERR_MASK, 0xF)) | \
0069     (FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_CP_STOP_ON_ERR_MASK, 0xF)) | \
0070     (FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_ARB_STOP_ON_ERR_MASK, 0x1)))
0071 
0072 #define HBM_DMA_QMAN_GLBL_ERR_CFG_MSG_EN_MASK   (\
0073     (FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_PQF_ERR_MSG_EN_MASK, 0xF)) | \
0074     (FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_CQF_ERR_MSG_EN_MASK, 0x1F)) | \
0075     (FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_CP_ERR_MSG_EN_MASK, 0x1F)))
0076 
0077 #define HBM_DMA_QMAN_GLBL_ERR_CFG_STOP_ON_ERR_EN_MASK   (\
0078     (FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_PQF_STOP_ON_ERR_MASK, 0xF)) | \
0079     (FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_CQF_STOP_ON_ERR_MASK, 0x1F)) | \
0080     (FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_CP_STOP_ON_ERR_MASK, 0x1F)) | \
0081     (FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_ARB_STOP_ON_ERR_MASK, 0x1)))
0082 
0083 #define TPC_QMAN_GLBL_ERR_CFG_MSG_EN_MASK   (\
0084     (FIELD_PREP(TPC0_QM_GLBL_ERR_CFG_PQF_ERR_MSG_EN_MASK, 0xF)) | \
0085     (FIELD_PREP(TPC0_QM_GLBL_ERR_CFG_CQF_ERR_MSG_EN_MASK, 0x1F)) | \
0086     (FIELD_PREP(TPC0_QM_GLBL_ERR_CFG_CP_ERR_MSG_EN_MASK, 0x1F)))
0087 
0088 #define TPC_QMAN_GLBL_ERR_CFG_STOP_ON_ERR_EN_MASK   (\
0089     (FIELD_PREP(TPC0_QM_GLBL_ERR_CFG_PQF_STOP_ON_ERR_MASK, 0xF)) | \
0090     (FIELD_PREP(TPC0_QM_GLBL_ERR_CFG_CQF_STOP_ON_ERR_MASK, 0x1F)) | \
0091     (FIELD_PREP(TPC0_QM_GLBL_ERR_CFG_CP_STOP_ON_ERR_MASK, 0x1F)) | \
0092     (FIELD_PREP(TPC0_QM_GLBL_ERR_CFG_ARB_STOP_ON_ERR_MASK, 0x1)))
0093 
0094 #define MME_QMAN_GLBL_ERR_CFG_MSG_EN_MASK   (\
0095     (FIELD_PREP(MME0_QM_GLBL_ERR_CFG_PQF_ERR_MSG_EN_MASK, 0xF)) | \
0096     (FIELD_PREP(MME0_QM_GLBL_ERR_CFG_CQF_ERR_MSG_EN_MASK, 0x1F)) | \
0097     (FIELD_PREP(MME0_QM_GLBL_ERR_CFG_CP_ERR_MSG_EN_MASK, 0x1F)))
0098 
0099 #define MME_QMAN_GLBL_ERR_CFG_STOP_ON_ERR_EN_MASK   (\
0100     (FIELD_PREP(MME0_QM_GLBL_ERR_CFG_PQF_STOP_ON_ERR_MASK, 0xF)) | \
0101     (FIELD_PREP(MME0_QM_GLBL_ERR_CFG_CQF_STOP_ON_ERR_MASK, 0x1F)) | \
0102     (FIELD_PREP(MME0_QM_GLBL_ERR_CFG_CP_STOP_ON_ERR_MASK, 0x1F)) | \
0103     (FIELD_PREP(MME0_QM_GLBL_ERR_CFG_ARB_STOP_ON_ERR_MASK, 0x1)))
0104 
0105 #define NIC_QMAN_GLBL_ERR_CFG_MSG_EN_MASK   (\
0106     (FIELD_PREP(NIC0_QM0_GLBL_ERR_CFG_PQF_ERR_MSG_EN_MASK, 0xF)) | \
0107     (FIELD_PREP(NIC0_QM0_GLBL_ERR_CFG_CQF_ERR_MSG_EN_MASK, 0xF)) | \
0108     (FIELD_PREP(NIC0_QM0_GLBL_ERR_CFG_CP_ERR_MSG_EN_MASK, 0xF)))
0109 
0110 #define NIC_QMAN_GLBL_ERR_CFG_STOP_ON_ERR_EN_MASK   (\
0111     (FIELD_PREP(NIC0_QM0_GLBL_ERR_CFG_PQF_STOP_ON_ERR_MASK, 0xF)) | \
0112     (FIELD_PREP(NIC0_QM0_GLBL_ERR_CFG_CQF_STOP_ON_ERR_MASK, 0xF)) | \
0113     (FIELD_PREP(NIC0_QM0_GLBL_ERR_CFG_CP_STOP_ON_ERR_MASK, 0xF)) | \
0114     (FIELD_PREP(NIC0_QM0_GLBL_ERR_CFG_ARB_STOP_ON_ERR_MASK, 0x1)))
0115 
0116 #define QMAN_CGM1_PWR_GATE_EN   (FIELD_PREP(DMA0_QM_CGM_CFG1_MASK_TH_MASK, 0xA))
0117 
0118 /* RESET registers configuration */
0119 #define CFG_RST_L_PSOC_MASK     BIT_MASK(0)
0120 #define CFG_RST_L_PCIE_MASK     BIT_MASK(1)
0121 #define CFG_RST_L_PCIE_IF_MASK      BIT_MASK(2)
0122 #define CFG_RST_L_HBM_S_PLL_MASK    BIT_MASK(3)
0123 #define CFG_RST_L_TPC_S_PLL_MASK    BIT_MASK(4)
0124 #define CFG_RST_L_MME_S_PLL_MASK    BIT_MASK(5)
0125 #define CFG_RST_L_CPU_PLL_MASK      BIT_MASK(6)
0126 #define CFG_RST_L_PCIE_PLL_MASK     BIT_MASK(7)
0127 #define CFG_RST_L_NIC_S_PLL_MASK    BIT_MASK(8)
0128 #define CFG_RST_L_HBM_N_PLL_MASK    BIT_MASK(9)
0129 #define CFG_RST_L_TPC_N_PLL_MASK    BIT_MASK(10)
0130 #define CFG_RST_L_MME_N_PLL_MASK    BIT_MASK(11)
0131 #define CFG_RST_L_NIC_N_PLL_MASK    BIT_MASK(12)
0132 #define CFG_RST_L_DMA_W_PLL_MASK    BIT_MASK(13)
0133 #define CFG_RST_L_SIF_W_PLL_MASK    BIT_MASK(14)
0134 #define CFG_RST_L_MESH_W_PLL_MASK   BIT_MASK(15)
0135 #define CFG_RST_L_SRAM_W_PLL_MASK   BIT_MASK(16)
0136 #define CFG_RST_L_DMA_E_PLL_MASK    BIT_MASK(17)
0137 #define CFG_RST_L_SIF_E_PLL_MASK    BIT_MASK(18)
0138 #define CFG_RST_L_MESH_E_PLL_MASK   BIT_MASK(19)
0139 #define CFG_RST_L_SRAM_E_PLL_MASK   BIT_MASK(20)
0140 
0141 #define CFG_RST_L_IF_1_MASK     BIT_MASK(21)
0142 #define CFG_RST_L_IF_0_MASK     BIT_MASK(22)
0143 #define CFG_RST_L_IF_2_MASK     BIT_MASK(23)
0144 #define CFG_RST_L_IF_3_MASK     BIT_MASK(24)
0145 #define CFG_RST_L_IF_MASK       GENMASK(24, 21)
0146 
0147 #define CFG_RST_L_TPC_0_MASK        BIT_MASK(25)
0148 #define CFG_RST_L_TPC_1_MASK        BIT_MASK(26)
0149 #define CFG_RST_L_TPC_2_MASK        BIT_MASK(27)
0150 #define CFG_RST_L_TPC_3_MASK        BIT_MASK(28)
0151 #define CFG_RST_L_TPC_4_MASK        BIT_MASK(29)
0152 #define CFG_RST_L_TPC_5_MASK        BIT_MASK(30)
0153 #define CFG_RST_L_TPC_6_MASK        BIT_MASK(31)
0154 #define CFG_RST_L_TPC_MASK      GENMASK(31, 25)
0155 
0156 #define CFG_RST_H_TPC_7_MASK        BIT_MASK(0)
0157 
0158 #define CFG_RST_H_MME_0_MASK        BIT_MASK(1)
0159 #define CFG_RST_H_MME_1_MASK        BIT_MASK(2)
0160 #define CFG_RST_H_MME_2_MASK        BIT_MASK(3)
0161 #define CFG_RST_H_MME_3_MASK        BIT_MASK(4)
0162 #define CFG_RST_H_MME_MASK      GENMASK(4, 1)
0163 
0164 #define CFG_RST_H_HBM_0_MASK        BIT_MASK(5)
0165 #define CFG_RST_H_HBM_1_MASK        BIT_MASK(6)
0166 #define CFG_RST_H_HBM_2_MASK        BIT_MASK(7)
0167 #define CFG_RST_H_HBM_3_MASK        BIT_MASK(8)
0168 #define CFG_RST_H_HBM_MASK      GENMASK(8, 5)
0169 
0170 #define CFG_RST_H_NIC_0_MASK        BIT_MASK(9)
0171 #define CFG_RST_H_NIC_1_MASK        BIT_MASK(10)
0172 #define CFG_RST_H_NIC_2_MASK        BIT_MASK(11)
0173 #define CFG_RST_H_NIC_3_MASK        BIT_MASK(12)
0174 #define CFG_RST_H_NIC_4_MASK        BIT_MASK(13)
0175 #define CFG_RST_H_NIC_MASK      GENMASK(13, 9)
0176 
0177 #define CFG_RST_H_SM_0_MASK     BIT_MASK(14)
0178 #define CFG_RST_H_SM_1_MASK     BIT_MASK(15)
0179 #define CFG_RST_H_SM_2_MASK     BIT_MASK(16)
0180 #define CFG_RST_H_SM_3_MASK     BIT_MASK(17)
0181 #define CFG_RST_H_SM_MASK       GENMASK(17, 14)
0182 
0183 #define CFG_RST_H_DMA_0_MASK        BIT_MASK(18)
0184 #define CFG_RST_H_DMA_1_MASK        BIT_MASK(19)
0185 #define CFG_RST_H_DMA_MASK      GENMASK(19, 18)
0186 
0187 #define CFG_RST_H_CPU_MASK      BIT_MASK(20)
0188 #define CFG_RST_H_MMU_MASK      BIT_MASK(21)
0189 
0190 #define UNIT_RST_L_PSOC_SHIFT       0
0191 #define UNIT_RST_L_PCIE_SHIFT       1
0192 #define UNIT_RST_L_PCIE_IF_SHIFT    2
0193 #define UNIT_RST_L_HBM_S_PLL_SHIFT  3
0194 #define UNIT_RST_L_TPC_S_PLL_SHIFT  4
0195 #define UNIT_RST_L_MME_S_PLL_SHIFT  5
0196 #define UNIT_RST_L_CPU_PLL_SHIFT    6
0197 #define UNIT_RST_L_PCIE_PLL_SHIFT   7
0198 #define UNIT_RST_L_NIC_S_PLL_SHIFT  8
0199 #define UNIT_RST_L_HBM_N_PLL_SHIFT  9
0200 #define UNIT_RST_L_TPC_N_PLL_SHIFT  10
0201 #define UNIT_RST_L_MME_N_PLL_SHIFT  11
0202 #define UNIT_RST_L_NIC_N_PLL_SHIFT  12
0203 #define UNIT_RST_L_DMA_W_PLL_SHIFT  13
0204 #define UNIT_RST_L_SIF_W_PLL_SHIFT  14
0205 #define UNIT_RST_L_MESH_W_PLL_SHIFT 15
0206 #define UNIT_RST_L_SRAM_W_PLL_SHIFT 16
0207 #define UNIT_RST_L_DMA_E_PLL_SHIFT  17
0208 #define UNIT_RST_L_SIF_E_PLL_SHIFT  18
0209 #define UNIT_RST_L_MESH_E_PLL_SHIFT 19
0210 #define UNIT_RST_L_SRAM_E_PLL_SHIFT 20
0211 #define UNIT_RST_L_TPC_0_SHIFT      21
0212 #define UNIT_RST_L_TPC_1_SHIFT      22
0213 #define UNIT_RST_L_TPC_2_SHIFT      23
0214 #define UNIT_RST_L_TPC_3_SHIFT      24
0215 #define UNIT_RST_L_TPC_4_SHIFT      25
0216 #define UNIT_RST_L_TPC_5_SHIFT      26
0217 #define UNIT_RST_L_TPC_6_SHIFT      27
0218 #define UNIT_RST_L_TPC_7_SHIFT      28
0219 #define UNIT_RST_L_MME_0_SHIFT      29
0220 #define UNIT_RST_L_MME_1_SHIFT      30
0221 #define UNIT_RST_L_MME_2_SHIFT      31
0222 
0223 #define UNIT_RST_H_MME_3_SHIFT      0
0224 #define UNIT_RST_H_HBM_0_SHIFT      1
0225 #define UNIT_RST_H_HBM_1_SHIFT      2
0226 #define UNIT_RST_H_HBM_2_SHIFT      3
0227 #define UNIT_RST_H_HBM_3_SHIFT      4
0228 #define UNIT_RST_H_NIC_0_SHIFT      5
0229 #define UNIT_RST_H_NIC_1_SHIFT      6
0230 #define UNIT_RST_H_NIC_2_SHIFT      7
0231 #define UNIT_RST_H_NIC_3_SHIFT      8
0232 #define UNIT_RST_H_NIC_4_SHIFT      9
0233 #define UNIT_RST_H_SM_0_SHIFT       10
0234 #define UNIT_RST_H_SM_1_SHIFT       11
0235 #define UNIT_RST_H_SM_2_SHIFT       12
0236 #define UNIT_RST_H_SM_3_SHIFT       13
0237 #define UNIT_RST_H_IF_0_SHIFT       14
0238 #define UNIT_RST_H_IF_1_SHIFT       15
0239 #define UNIT_RST_H_IF_2_SHIFT       16
0240 #define UNIT_RST_H_IF_3_SHIFT       17
0241 #define UNIT_RST_H_DMA_0_SHIFT      18
0242 #define UNIT_RST_H_DMA_1_SHIFT      19
0243 #define UNIT_RST_H_CPU_SHIFT        20
0244 #define UNIT_RST_H_MMU_SHIFT        21
0245 
0246 #define UNIT_RST_H_HBM_MASK     ((1 << UNIT_RST_H_HBM_0_SHIFT) | \
0247                     (1 << UNIT_RST_H_HBM_1_SHIFT) | \
0248                     (1 << UNIT_RST_H_HBM_2_SHIFT) | \
0249                     (1 << UNIT_RST_H_HBM_3_SHIFT))
0250 
0251 #define UNIT_RST_H_NIC_MASK     ((1 << UNIT_RST_H_NIC_0_SHIFT) | \
0252                     (1 << UNIT_RST_H_NIC_1_SHIFT) | \
0253                     (1 << UNIT_RST_H_NIC_2_SHIFT) | \
0254                     (1 << UNIT_RST_H_NIC_3_SHIFT) | \
0255                     (1 << UNIT_RST_H_NIC_4_SHIFT))
0256 
0257 #define UNIT_RST_H_SM_MASK      ((1 << UNIT_RST_H_SM_0_SHIFT) | \
0258                     (1 << UNIT_RST_H_SM_1_SHIFT) | \
0259                     (1 << UNIT_RST_H_SM_2_SHIFT) | \
0260                     (1 << UNIT_RST_H_SM_3_SHIFT))
0261 
0262 #define UNIT_RST_H_MME_MASK     ((1 << UNIT_RST_H_MME_0_SHIFT) | \
0263                     (1 << UNIT_RST_H_MME_1_SHIFT) | \
0264                     (1 << UNIT_RST_H_MME_2_SHIFT))
0265 
0266 #define UNIT_RST_L_MME_MASK     (1 << UNIT_RST_L_MME_3_SHIFT)
0267 
0268 #define UNIT_RST_L_IF_MASK      ((1 << UNIT_RST_L_IF_0_SHIFT) | \
0269                     (1 << UNIT_RST_L_IF_1_SHIFT) | \
0270                     (1 << UNIT_RST_L_IF_2_SHIFT) | \
0271                     (1 << UNIT_RST_L_IF_3_SHIFT))
0272 
0273 #define UNIT_RST_L_TPC_MASK     ((1 << UNIT_RST_L_TPC_0_SHIFT) | \
0274                     (1 << UNIT_RST_L_TPC_1_SHIFT) | \
0275                     (1 << UNIT_RST_L_TPC_2_SHIFT) | \
0276                     (1 << UNIT_RST_L_TPC_3_SHIFT) | \
0277                     (1 << UNIT_RST_L_TPC_4_SHIFT) | \
0278                     (1 << UNIT_RST_L_TPC_5_SHIFT) | \
0279                     (1 << UNIT_RST_L_TPC_6_SHIFT) | \
0280                     (1 << UNIT_RST_L_TPC_7_SHIFT))
0281 
0282 /* CPU_CA53_CFG_ARM_RST_CONTROL */
0283 #define CPU_CA53_CFG_ARM_RST_CONTROL_NCPUPORESET_SHIFT               0
0284 #define CPU_CA53_CFG_ARM_RST_CONTROL_NCPUPORESET_MASK                0x3
0285 #define CPU_CA53_CFG_ARM_RST_CONTROL_NCORERESET_SHIFT                4
0286 #define CPU_CA53_CFG_ARM_RST_CONTROL_NCORERESET_MASK                 0x30
0287 #define CPU_CA53_CFG_ARM_RST_CONTROL_NL2RESET_SHIFT                  8
0288 #define CPU_CA53_CFG_ARM_RST_CONTROL_NL2RESET_MASK                   0x100
0289 #define CPU_CA53_CFG_ARM_RST_CONTROL_NPRESETDBG_SHIFT                12
0290 #define CPU_CA53_CFG_ARM_RST_CONTROL_NPRESETDBG_MASK                 0x1000
0291 #define CPU_CA53_CFG_ARM_RST_CONTROL_NMBISTRESET_SHIFT               16
0292 #define CPU_CA53_CFG_ARM_RST_CONTROL_NMBISTRESET_MASK                0x10000
0293 #define CPU_CA53_CFG_ARM_RST_CONTROL_WARMRSTREQ_SHIFT                20
0294 #define CPU_CA53_CFG_ARM_RST_CONTROL_WARMRSTREQ_MASK                 0x300000
0295 
0296 #define CPU_RESET_ASSERT    (\
0297             1 << CPU_CA53_CFG_ARM_RST_CONTROL_NMBISTRESET_SHIFT)
0298 
0299 #define CPU_RESET_CORE0_DEASSERT    (\
0300             1 << CPU_CA53_CFG_ARM_RST_CONTROL_NCPUPORESET_SHIFT |\
0301             1 << CPU_CA53_CFG_ARM_RST_CONTROL_NCORERESET_SHIFT |\
0302             1 << CPU_CA53_CFG_ARM_RST_CONTROL_NL2RESET_SHIFT |\
0303             1 << CPU_CA53_CFG_ARM_RST_CONTROL_NMBISTRESET_SHIFT)
0304 
0305 /* QM_IDLE_MASK is valid for all engines QM idle check */
0306 #define QM_IDLE_MASK    (DMA0_QM_GLBL_STS0_PQF_IDLE_MASK | \
0307             DMA0_QM_GLBL_STS0_CQF_IDLE_MASK | \
0308             DMA0_QM_GLBL_STS0_CP_IDLE_MASK)
0309 
0310 /* CGM_IDLE_MASK is valid for all engines CGM idle check */
0311 #define CGM_IDLE_MASK   DMA0_QM_CGM_STS_AGENT_IDLE_MASK
0312 
0313 #define TPC_IDLE_MASK   ((1 << TPC0_CFG_STATUS_SCALAR_PIPE_EMPTY_SHIFT) | \
0314             (1 << TPC0_CFG_STATUS_VECTOR_PIPE_EMPTY_SHIFT) | \
0315             (1 << TPC0_CFG_STATUS_IQ_EMPTY_SHIFT) | \
0316             (1 << TPC0_CFG_STATUS_SB_EMPTY_SHIFT) | \
0317             (1 << TPC0_CFG_STATUS_QM_IDLE_SHIFT) | \
0318             (1 << TPC0_CFG_STATUS_QM_RDY_SHIFT))
0319 
0320 #define MME0_CTRL_ARCH_STATUS_SB_A_EMPTY_MASK                        0x80
0321 #define MME0_CTRL_ARCH_STATUS_SB_B_EMPTY_MASK                        0x100
0322 #define MME0_CTRL_ARCH_STATUS_WBC_AXI_IDLE_MASK                      0x1000
0323 
0324 #define MME_ARCH_IDLE_MASK  (MME0_CTRL_ARCH_STATUS_SB_A_EMPTY_MASK | \
0325                 MME0_CTRL_ARCH_STATUS_SB_B_EMPTY_MASK | \
0326                 MME0_CTRL_ARCH_STATUS_WBC_AXI_IDLE_MASK)
0327 
0328 #define IS_QM_IDLE(qm_glbl_sts0, qm_cgm_sts) \
0329     ((((qm_glbl_sts0) & QM_IDLE_MASK) == QM_IDLE_MASK) && \
0330             (((qm_cgm_sts) & CGM_IDLE_MASK) == CGM_IDLE_MASK))
0331 
0332 #define IS_DMA_IDLE(dma_core_sts0) \
0333     !(dma_core_sts0 & DMA0_CORE_STS0_BUSY_MASK)
0334 
0335 #define IS_TPC_IDLE(tpc_cfg_sts) \
0336     (((tpc_cfg_sts) & TPC_IDLE_MASK) == TPC_IDLE_MASK)
0337 
0338 #define IS_MME_IDLE(mme_arch_sts) \
0339     (((mme_arch_sts) & MME_ARCH_IDLE_MASK) == MME_ARCH_IDLE_MASK)
0340 
0341 enum axi_id {
0342     AXI_ID_MME,
0343     AXI_ID_TPC,
0344     AXI_ID_DMA,
0345     AXI_ID_NIC, /* Local NIC */
0346     AXI_ID_PCI,
0347     AXI_ID_CPU,
0348     AXI_ID_PSOC,
0349     AXI_ID_MMU,
0350     AXI_ID_NIC_FT   /* Feed-Through NIC */
0351 };
0352 
0353 /* RAZWI initiator ID is built from the location in the chip and the AXI ID */
0354 
0355 #define RAZWI_INITIATOR_AXI_ID_SHIFT    20
0356 #define RAZWI_INITIATOR_AXI_ID_MASK 0xF
0357 #define RAZWI_INITIATOR_X_SHIFT     24
0358 #define RAZWI_INITIATOR_X_MASK      0xF
0359 #define RAZWI_INITIATOR_Y_SHIFT     28
0360 #define RAZWI_INITIATOR_Y_MASK      0x7
0361 
0362 #define RAZWI_INITIATOR_ID_AXI_ID(axi_id) \
0363     (((axi_id) & RAZWI_INITIATOR_AXI_ID_MASK) << \
0364         RAZWI_INITIATOR_AXI_ID_SHIFT)
0365 
0366 #define RAZWI_INITIATOR_ID_X_Y(x, y) \
0367     ((((y) & RAZWI_INITIATOR_Y_MASK) << RAZWI_INITIATOR_Y_SHIFT) | \
0368         (((x) & RAZWI_INITIATOR_X_MASK) << RAZWI_INITIATOR_X_SHIFT))
0369 
0370 #define RAZWI_INITIATOR_ID_X_Y_TPC0_NIC0    RAZWI_INITIATOR_ID_X_Y(1, 1)
0371 #define RAZWI_INITIATOR_ID_X_Y_TPC1     RAZWI_INITIATOR_ID_X_Y(2, 1)
0372 #define RAZWI_INITIATOR_ID_X_Y_MME0_0       RAZWI_INITIATOR_ID_X_Y(3, 1)
0373 #define RAZWI_INITIATOR_ID_X_Y_MME0_1       RAZWI_INITIATOR_ID_X_Y(4, 1)
0374 #define RAZWI_INITIATOR_ID_X_Y_MME1_0       RAZWI_INITIATOR_ID_X_Y(5, 1)
0375 #define RAZWI_INITIATOR_ID_X_Y_MME1_1       RAZWI_INITIATOR_ID_X_Y(6, 1)
0376 #define RAZWI_INITIATOR_ID_X_Y_TPC2     RAZWI_INITIATOR_ID_X_Y(7, 1)
0377 #define RAZWI_INITIATOR_ID_X_Y_TPC3_PCI_CPU_PSOC \
0378                         RAZWI_INITIATOR_ID_X_Y(8, 1)
0379 #define RAZWI_INITIATOR_ID_X_Y_DMA_IF_W_S_0 RAZWI_INITIATOR_ID_X_Y(0, 1)
0380 #define RAZWI_INITIATOR_ID_X_Y_DMA_IF_E_S_0 RAZWI_INITIATOR_ID_X_Y(9, 1)
0381 #define RAZWI_INITIATOR_ID_X_Y_DMA_IF_W_S_1 RAZWI_INITIATOR_ID_X_Y(0, 2)
0382 #define RAZWI_INITIATOR_ID_X_Y_DMA_IF_E_S_1 RAZWI_INITIATOR_ID_X_Y(9, 2)
0383 #define RAZWI_INITIATOR_ID_X_Y_DMA_IF_W_N_0 RAZWI_INITIATOR_ID_X_Y(0, 3)
0384 #define RAZWI_INITIATOR_ID_X_Y_DMA_IF_E_N_0 RAZWI_INITIATOR_ID_X_Y(9, 3)
0385 #define RAZWI_INITIATOR_ID_X_Y_DMA_IF_W_N_1 RAZWI_INITIATOR_ID_X_Y(0, 4)
0386 #define RAZWI_INITIATOR_ID_X_Y_DMA_IF_E_N_1 RAZWI_INITIATOR_ID_X_Y(9, 4)
0387 #define RAZWI_INITIATOR_ID_X_Y_TPC4_NIC1_NIC2   RAZWI_INITIATOR_ID_X_Y(1, 6)
0388 #define RAZWI_INITIATOR_ID_X_Y_TPC5     RAZWI_INITIATOR_ID_X_Y(2, 6)
0389 #define RAZWI_INITIATOR_ID_X_Y_MME2_0       RAZWI_INITIATOR_ID_X_Y(3, 6)
0390 #define RAZWI_INITIATOR_ID_X_Y_MME2_1       RAZWI_INITIATOR_ID_X_Y(4, 6)
0391 #define RAZWI_INITIATOR_ID_X_Y_MME3_0       RAZWI_INITIATOR_ID_X_Y(5, 6)
0392 #define RAZWI_INITIATOR_ID_X_Y_MME3_1       RAZWI_INITIATOR_ID_X_Y(6, 6)
0393 #define RAZWI_INITIATOR_ID_X_Y_TPC6     RAZWI_INITIATOR_ID_X_Y(7, 6)
0394 #define RAZWI_INITIATOR_ID_X_Y_TPC7_NIC4_NIC5   RAZWI_INITIATOR_ID_X_Y(8, 6)
0395 
0396 #define PSOC_ETR_AXICTL_PROTCTRLBIT1_SHIFT  1
0397 #define PSOC_ETR_AXICTL_PROTCTRLBIT0_MASK   0x1
0398 #define PSOC_ETR_AXICTL_PROTCTRLBIT1_MASK   0x2
0399 #define PSOC_ETR_AXICTL_WRBURSTLEN_MASK     0xF00
0400 
0401 /* STLB_CACHE_INV */
0402 #define STLB_CACHE_INV_PRODUCER_INDEX_SHIFT                          0
0403 #define STLB_CACHE_INV_PRODUCER_INDEX_MASK                           0xFF
0404 #define STLB_CACHE_INV_INDEX_MASK_SHIFT                              8
0405 #define STLB_CACHE_INV_INDEX_MASK_MASK                               0xFF00
0406 
0407 #define MME_ACC_ACC_STALL_R_SHIFT                                    0
0408 #define MME_SBAB_SB_STALL_R_SHIFT                                    0
0409 
0410 #define PCIE_WRAP_LBW_PROT_OVR_RD_EN_MASK                            0x700
0411 #define PCIE_WRAP_LBW_PROT_OVR_WR_EN_MASK                            0x7000
0412 
0413 #define PCIE_WRAP_LBW_DRAIN_CFG_EN_SHIFT                             0
0414 #define PCIE_WRAP_HBW_DRAIN_CFG_EN_SHIFT                             0
0415 
0416 /* DMA_IF_HBM_CRED_EN */
0417 #define DMA_IF_HBM_CRED_EN_READ_CREDIT_EN_SHIFT                      0
0418 #define DMA_IF_HBM_CRED_EN_READ_CREDIT_EN_MASK                       0x1
0419 #define DMA_IF_HBM_CRED_EN_WRITE_CREDIT_EN_SHIFT                     1
0420 #define DMA_IF_HBM_CRED_EN_WRITE_CREDIT_EN_MASK                      0x2
0421 
0422 #define DMA_IF_DOWN_CHX_SCRAM_SRAM_EN_VAL_SHIFT                      0
0423 #define DMA_IF_DOWN_CHX_SCRAM_HBM_EN_VAL_SHIFT                       0
0424 #define DMA_IF_DOWN_CHX_E2E_HBM_EN_VAL_SHIFT                         0
0425 #define DMA_IF_DOWN_CHX_E2E_PCI_EN_VAL_SHIFT                         0
0426 
0427 #define IF_RTR_CTRL_SCRAM_SRAM_EN_VAL_SHIFT                          0
0428 #define IF_RTR_CTRL_SCRAM_HBM_EN_VAL_SHIFT                           0
0429 
0430 #define IF_RTR_CTRL_E2E_HBM_EN_VAL_SHIFT                             0
0431 #define IF_RTR_CTRL_E2E_PCI_EN_VAL_SHIFT                             0
0432 
0433 /* MMU_UP_PAGE_ERROR_CAPTURE */
0434 #define MMU_UP_PAGE_ERROR_CAPTURE_VA_49_32_MASK                      0x3FFFF
0435 #define MMU_UP_PAGE_ERROR_CAPTURE_ENTRY_VALID_MASK                   0x40000
0436 
0437 /* MMU_UP_ACCESS_ERROR_CAPTURE */
0438 #define MMU_UP_ACCESS_ERROR_CAPTURE_VA_49_32_MASK                    0x3FFFF
0439 #define MMU_UP_ACCESS_ERROR_CAPTURE_ENTRY_VALID_MASK                 0x40000
0440 
0441 #define QM_ARB_ERR_MSG_EN_CHOISE_OVF_MASK                            0x1
0442 #define QM_ARB_ERR_MSG_EN_CHOISE_WDT_MASK                            0x2
0443 #define QM_ARB_ERR_MSG_EN_AXI_LBW_ERR_MASK                           0x4
0444 
0445 #define QM_ARB_ERR_MSG_EN_MASK      (\
0446                     QM_ARB_ERR_MSG_EN_CHOISE_OVF_MASK |\
0447                     QM_ARB_ERR_MSG_EN_CHOISE_WDT_MASK |\
0448                     QM_ARB_ERR_MSG_EN_AXI_LBW_ERR_MASK)
0449 
0450 #define PCIE_AUX_FLR_CTRL_HW_CTRL_MASK                               0x1
0451 #define PCIE_AUX_FLR_CTRL_INT_MASK_MASK                              0x2
0452 
0453 #define SYNC_MNGR_W_S_SYNC_MNGR_OBJS_MON_STATUS_0_VALID_SHIFT        0
0454 #define SYNC_MNGR_W_S_SYNC_MNGR_OBJS_MON_STATUS_0_VALID_MASK         0x1
0455 #define SYNC_MNGR_W_S_SYNC_MNGR_OBJS_MON_STATUS_0_PENDING_SHIFT      1
0456 #define SYNC_MNGR_W_S_SYNC_MNGR_OBJS_MON_STATUS_0_PENDING_MASK       0x1FE
0457 #define SYNC_MNGR_W_S_SYNC_MNGR_OBJS_MON_ARM_0_SID_SHIFT             0
0458 #define SYNC_MNGR_W_S_SYNC_MNGR_OBJS_MON_ARM_0_SID_MASK              0xFF
0459 #define SYNC_MNGR_W_S_SYNC_MNGR_OBJS_MON_ARM_0_MASK_SHIFT            8
0460 #define SYNC_MNGR_W_S_SYNC_MNGR_OBJS_MON_ARM_0_MASK_MASK             0xFF00
0461 #define SYNC_MNGR_W_S_SYNC_MNGR_OBJS_MON_ARM_0_SOP_SHIFT             16
0462 #define SYNC_MNGR_W_S_SYNC_MNGR_OBJS_MON_ARM_0_SOP_MASK              0x10000
0463 #define SYNC_MNGR_W_S_SYNC_MNGR_OBJS_MON_ARM_0_SOD_SHIFT             17
0464 #define SYNC_MNGR_W_S_SYNC_MNGR_OBJS_MON_ARM_0_SOD_MASK              0xFFFE0000
0465 #define TPC0_QM_CP_STS_0_FENCE_ID_SHIFT                              20
0466 #define TPC0_QM_CP_STS_0_FENCE_ID_MASK                               0x300000
0467 #define TPC0_QM_CP_STS_0_FENCE_IN_PROGRESS_SHIFT                     22
0468 #define TPC0_QM_CP_STS_0_FENCE_IN_PROGRESS_MASK                      0x400000
0469 
0470 #endif /* GAUDI_MASKS_H_ */