gaudi_masks.h (19896B)
1/* SPDX-License-Identifier: GPL-2.0 2 * 3 * Copyright 2016-2020 HabanaLabs, Ltd. 4 * All Rights Reserved. 5 * 6 */ 7 8#ifndef GAUDI_MASKS_H_ 9#define GAUDI_MASKS_H_ 10 11#include "asic_reg/gaudi_regs.h" 12 13/* Useful masks for bits in various registers */ 14#define PCI_DMA_QMAN_ENABLE (\ 15 (FIELD_PREP(DMA0_QM_GLBL_CFG0_PQF_EN_MASK, 0xF)) | \ 16 (FIELD_PREP(DMA0_QM_GLBL_CFG0_CQF_EN_MASK, 0xF)) | \ 17 (FIELD_PREP(DMA0_QM_GLBL_CFG0_CP_EN_MASK, 0xF))) 18 19#define QMAN_EXTERNAL_MAKE_TRUSTED (\ 20 (FIELD_PREP(DMA0_QM_GLBL_PROT_PQF_MASK, 0xF)) | \ 21 (FIELD_PREP(DMA0_QM_GLBL_PROT_CQF_MASK, 0xF)) | \ 22 (FIELD_PREP(DMA0_QM_GLBL_PROT_CP_MASK, 0xF)) | \ 23 (FIELD_PREP(DMA0_QM_GLBL_PROT_ERR_MASK, 0x1))) 24 25#define QMAN_INTERNAL_MAKE_TRUSTED (\ 26 (FIELD_PREP(DMA0_QM_GLBL_PROT_PQF_MASK, 0xF)) | \ 27 (FIELD_PREP(DMA0_QM_GLBL_PROT_ERR_MASK, 0x1))) 28 29#define HBM_DMA_QMAN_ENABLE (\ 30 (FIELD_PREP(DMA0_QM_GLBL_CFG0_PQF_EN_MASK, 0xF)) | \ 31 (FIELD_PREP(DMA0_QM_GLBL_CFG0_CQF_EN_MASK, 0x1F)) | \ 32 (FIELD_PREP(DMA0_QM_GLBL_CFG0_CP_EN_MASK, 0x1F))) 33 34#define QMAN_MME_ENABLE (\ 35 (FIELD_PREP(MME0_QM_GLBL_CFG0_PQF_EN_MASK, 0xF)) | \ 36 (FIELD_PREP(MME0_QM_GLBL_CFG0_CQF_EN_MASK, 0x1F)) | \ 37 (FIELD_PREP(MME0_QM_GLBL_CFG0_CP_EN_MASK, 0x1F))) 38 39#define QMAN_TPC_ENABLE (\ 40 (FIELD_PREP(TPC0_QM_GLBL_CFG0_PQF_EN_MASK, 0xF)) | \ 41 (FIELD_PREP(TPC0_QM_GLBL_CFG0_CQF_EN_MASK, 0x1F)) | \ 42 (FIELD_PREP(TPC0_QM_GLBL_CFG0_CP_EN_MASK, 0x1F))) 43 44#define NIC_QMAN_ENABLE (\ 45 (FIELD_PREP(NIC0_QM0_GLBL_CFG0_PQF_EN_MASK, 0xF)) | \ 46 (FIELD_PREP(NIC0_QM0_GLBL_CFG0_CQF_EN_MASK, 0xF)) | \ 47 (FIELD_PREP(NIC0_QM0_GLBL_CFG0_CP_EN_MASK, 0xF))) 48 49#define QMAN_UPPER_CP_CGM_PWR_GATE_EN (\ 50 (FIELD_PREP(DMA0_QM_CGM_CFG_IDLE_TH_MASK, 0x20)) | \ 51 (FIELD_PREP(DMA0_QM_CGM_CFG_G2F_TH_MASK, 0xA)) | \ 52 (FIELD_PREP(DMA0_QM_CGM_CFG_CP_IDLE_MASK_MASK, 0x10)) | \ 53 (FIELD_PREP(DMA0_QM_CGM_CFG_EN_MASK, 0x1))) 54 55#define QMAN_COMMON_CP_CGM_PWR_GATE_EN (\ 56 (FIELD_PREP(DMA0_QM_CGM_CFG_IDLE_TH_MASK, 0x20)) | \ 57 (FIELD_PREP(DMA0_QM_CGM_CFG_G2F_TH_MASK, 0xA)) | \ 58 (FIELD_PREP(DMA0_QM_CGM_CFG_CP_IDLE_MASK_MASK, 0xF)) | \ 59 (FIELD_PREP(DMA0_QM_CGM_CFG_EN_MASK, 0x1))) 60 61#define PCI_DMA_QMAN_GLBL_ERR_CFG_MSG_EN_MASK (\ 62 (FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_PQF_ERR_MSG_EN_MASK, 0xF)) | \ 63 (FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_CQF_ERR_MSG_EN_MASK, 0xF)) | \ 64 (FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_CP_ERR_MSG_EN_MASK, 0xF))) 65 66#define PCI_DMA_QMAN_GLBL_ERR_CFG_STOP_ON_ERR_EN_MASK (\ 67 (FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_PQF_STOP_ON_ERR_MASK, 0xF)) | \ 68 (FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_CQF_STOP_ON_ERR_MASK, 0xF)) | \ 69 (FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_CP_STOP_ON_ERR_MASK, 0xF)) | \ 70 (FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_ARB_STOP_ON_ERR_MASK, 0x1))) 71 72#define HBM_DMA_QMAN_GLBL_ERR_CFG_MSG_EN_MASK (\ 73 (FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_PQF_ERR_MSG_EN_MASK, 0xF)) | \ 74 (FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_CQF_ERR_MSG_EN_MASK, 0x1F)) | \ 75 (FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_CP_ERR_MSG_EN_MASK, 0x1F))) 76 77#define HBM_DMA_QMAN_GLBL_ERR_CFG_STOP_ON_ERR_EN_MASK (\ 78 (FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_PQF_STOP_ON_ERR_MASK, 0xF)) | \ 79 (FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_CQF_STOP_ON_ERR_MASK, 0x1F)) | \ 80 (FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_CP_STOP_ON_ERR_MASK, 0x1F)) | \ 81 (FIELD_PREP(DMA0_QM_GLBL_ERR_CFG_ARB_STOP_ON_ERR_MASK, 0x1))) 82 83#define TPC_QMAN_GLBL_ERR_CFG_MSG_EN_MASK (\ 84 (FIELD_PREP(TPC0_QM_GLBL_ERR_CFG_PQF_ERR_MSG_EN_MASK, 0xF)) | \ 85 (FIELD_PREP(TPC0_QM_GLBL_ERR_CFG_CQF_ERR_MSG_EN_MASK, 0x1F)) | \ 86 (FIELD_PREP(TPC0_QM_GLBL_ERR_CFG_CP_ERR_MSG_EN_MASK, 0x1F))) 87 88#define TPC_QMAN_GLBL_ERR_CFG_STOP_ON_ERR_EN_MASK (\ 89 (FIELD_PREP(TPC0_QM_GLBL_ERR_CFG_PQF_STOP_ON_ERR_MASK, 0xF)) | \ 90 (FIELD_PREP(TPC0_QM_GLBL_ERR_CFG_CQF_STOP_ON_ERR_MASK, 0x1F)) | \ 91 (FIELD_PREP(TPC0_QM_GLBL_ERR_CFG_CP_STOP_ON_ERR_MASK, 0x1F)) | \ 92 (FIELD_PREP(TPC0_QM_GLBL_ERR_CFG_ARB_STOP_ON_ERR_MASK, 0x1))) 93 94#define MME_QMAN_GLBL_ERR_CFG_MSG_EN_MASK (\ 95 (FIELD_PREP(MME0_QM_GLBL_ERR_CFG_PQF_ERR_MSG_EN_MASK, 0xF)) | \ 96 (FIELD_PREP(MME0_QM_GLBL_ERR_CFG_CQF_ERR_MSG_EN_MASK, 0x1F)) | \ 97 (FIELD_PREP(MME0_QM_GLBL_ERR_CFG_CP_ERR_MSG_EN_MASK, 0x1F))) 98 99#define MME_QMAN_GLBL_ERR_CFG_STOP_ON_ERR_EN_MASK (\ 100 (FIELD_PREP(MME0_QM_GLBL_ERR_CFG_PQF_STOP_ON_ERR_MASK, 0xF)) | \ 101 (FIELD_PREP(MME0_QM_GLBL_ERR_CFG_CQF_STOP_ON_ERR_MASK, 0x1F)) | \ 102 (FIELD_PREP(MME0_QM_GLBL_ERR_CFG_CP_STOP_ON_ERR_MASK, 0x1F)) | \ 103 (FIELD_PREP(MME0_QM_GLBL_ERR_CFG_ARB_STOP_ON_ERR_MASK, 0x1))) 104 105#define NIC_QMAN_GLBL_ERR_CFG_MSG_EN_MASK (\ 106 (FIELD_PREP(NIC0_QM0_GLBL_ERR_CFG_PQF_ERR_MSG_EN_MASK, 0xF)) | \ 107 (FIELD_PREP(NIC0_QM0_GLBL_ERR_CFG_CQF_ERR_MSG_EN_MASK, 0xF)) | \ 108 (FIELD_PREP(NIC0_QM0_GLBL_ERR_CFG_CP_ERR_MSG_EN_MASK, 0xF))) 109 110#define NIC_QMAN_GLBL_ERR_CFG_STOP_ON_ERR_EN_MASK (\ 111 (FIELD_PREP(NIC0_QM0_GLBL_ERR_CFG_PQF_STOP_ON_ERR_MASK, 0xF)) | \ 112 (FIELD_PREP(NIC0_QM0_GLBL_ERR_CFG_CQF_STOP_ON_ERR_MASK, 0xF)) | \ 113 (FIELD_PREP(NIC0_QM0_GLBL_ERR_CFG_CP_STOP_ON_ERR_MASK, 0xF)) | \ 114 (FIELD_PREP(NIC0_QM0_GLBL_ERR_CFG_ARB_STOP_ON_ERR_MASK, 0x1))) 115 116#define QMAN_CGM1_PWR_GATE_EN (FIELD_PREP(DMA0_QM_CGM_CFG1_MASK_TH_MASK, 0xA)) 117 118/* RESET registers configuration */ 119#define CFG_RST_L_PSOC_MASK BIT_MASK(0) 120#define CFG_RST_L_PCIE_MASK BIT_MASK(1) 121#define CFG_RST_L_PCIE_IF_MASK BIT_MASK(2) 122#define CFG_RST_L_HBM_S_PLL_MASK BIT_MASK(3) 123#define CFG_RST_L_TPC_S_PLL_MASK BIT_MASK(4) 124#define CFG_RST_L_MME_S_PLL_MASK BIT_MASK(5) 125#define CFG_RST_L_CPU_PLL_MASK BIT_MASK(6) 126#define CFG_RST_L_PCIE_PLL_MASK BIT_MASK(7) 127#define CFG_RST_L_NIC_S_PLL_MASK BIT_MASK(8) 128#define CFG_RST_L_HBM_N_PLL_MASK BIT_MASK(9) 129#define CFG_RST_L_TPC_N_PLL_MASK BIT_MASK(10) 130#define CFG_RST_L_MME_N_PLL_MASK BIT_MASK(11) 131#define CFG_RST_L_NIC_N_PLL_MASK BIT_MASK(12) 132#define CFG_RST_L_DMA_W_PLL_MASK BIT_MASK(13) 133#define CFG_RST_L_SIF_W_PLL_MASK BIT_MASK(14) 134#define CFG_RST_L_MESH_W_PLL_MASK BIT_MASK(15) 135#define CFG_RST_L_SRAM_W_PLL_MASK BIT_MASK(16) 136#define CFG_RST_L_DMA_E_PLL_MASK BIT_MASK(17) 137#define CFG_RST_L_SIF_E_PLL_MASK BIT_MASK(18) 138#define CFG_RST_L_MESH_E_PLL_MASK BIT_MASK(19) 139#define CFG_RST_L_SRAM_E_PLL_MASK BIT_MASK(20) 140 141#define CFG_RST_L_IF_1_MASK BIT_MASK(21) 142#define CFG_RST_L_IF_0_MASK BIT_MASK(22) 143#define CFG_RST_L_IF_2_MASK BIT_MASK(23) 144#define CFG_RST_L_IF_3_MASK BIT_MASK(24) 145#define CFG_RST_L_IF_MASK GENMASK(24, 21) 146 147#define CFG_RST_L_TPC_0_MASK BIT_MASK(25) 148#define CFG_RST_L_TPC_1_MASK BIT_MASK(26) 149#define CFG_RST_L_TPC_2_MASK BIT_MASK(27) 150#define CFG_RST_L_TPC_3_MASK BIT_MASK(28) 151#define CFG_RST_L_TPC_4_MASK BIT_MASK(29) 152#define CFG_RST_L_TPC_5_MASK BIT_MASK(30) 153#define CFG_RST_L_TPC_6_MASK BIT_MASK(31) 154#define CFG_RST_L_TPC_MASK GENMASK(31, 25) 155 156#define CFG_RST_H_TPC_7_MASK BIT_MASK(0) 157 158#define CFG_RST_H_MME_0_MASK BIT_MASK(1) 159#define CFG_RST_H_MME_1_MASK BIT_MASK(2) 160#define CFG_RST_H_MME_2_MASK BIT_MASK(3) 161#define CFG_RST_H_MME_3_MASK BIT_MASK(4) 162#define CFG_RST_H_MME_MASK GENMASK(4, 1) 163 164#define CFG_RST_H_HBM_0_MASK BIT_MASK(5) 165#define CFG_RST_H_HBM_1_MASK BIT_MASK(6) 166#define CFG_RST_H_HBM_2_MASK BIT_MASK(7) 167#define CFG_RST_H_HBM_3_MASK BIT_MASK(8) 168#define CFG_RST_H_HBM_MASK GENMASK(8, 5) 169 170#define CFG_RST_H_NIC_0_MASK BIT_MASK(9) 171#define CFG_RST_H_NIC_1_MASK BIT_MASK(10) 172#define CFG_RST_H_NIC_2_MASK BIT_MASK(11) 173#define CFG_RST_H_NIC_3_MASK BIT_MASK(12) 174#define CFG_RST_H_NIC_4_MASK BIT_MASK(13) 175#define CFG_RST_H_NIC_MASK GENMASK(13, 9) 176 177#define CFG_RST_H_SM_0_MASK BIT_MASK(14) 178#define CFG_RST_H_SM_1_MASK BIT_MASK(15) 179#define CFG_RST_H_SM_2_MASK BIT_MASK(16) 180#define CFG_RST_H_SM_3_MASK BIT_MASK(17) 181#define CFG_RST_H_SM_MASK GENMASK(17, 14) 182 183#define CFG_RST_H_DMA_0_MASK BIT_MASK(18) 184#define CFG_RST_H_DMA_1_MASK BIT_MASK(19) 185#define CFG_RST_H_DMA_MASK GENMASK(19, 18) 186 187#define CFG_RST_H_CPU_MASK BIT_MASK(20) 188#define CFG_RST_H_MMU_MASK BIT_MASK(21) 189 190#define UNIT_RST_L_PSOC_SHIFT 0 191#define UNIT_RST_L_PCIE_SHIFT 1 192#define UNIT_RST_L_PCIE_IF_SHIFT 2 193#define UNIT_RST_L_HBM_S_PLL_SHIFT 3 194#define UNIT_RST_L_TPC_S_PLL_SHIFT 4 195#define UNIT_RST_L_MME_S_PLL_SHIFT 5 196#define UNIT_RST_L_CPU_PLL_SHIFT 6 197#define UNIT_RST_L_PCIE_PLL_SHIFT 7 198#define UNIT_RST_L_NIC_S_PLL_SHIFT 8 199#define UNIT_RST_L_HBM_N_PLL_SHIFT 9 200#define UNIT_RST_L_TPC_N_PLL_SHIFT 10 201#define UNIT_RST_L_MME_N_PLL_SHIFT 11 202#define UNIT_RST_L_NIC_N_PLL_SHIFT 12 203#define UNIT_RST_L_DMA_W_PLL_SHIFT 13 204#define UNIT_RST_L_SIF_W_PLL_SHIFT 14 205#define UNIT_RST_L_MESH_W_PLL_SHIFT 15 206#define UNIT_RST_L_SRAM_W_PLL_SHIFT 16 207#define UNIT_RST_L_DMA_E_PLL_SHIFT 17 208#define UNIT_RST_L_SIF_E_PLL_SHIFT 18 209#define UNIT_RST_L_MESH_E_PLL_SHIFT 19 210#define UNIT_RST_L_SRAM_E_PLL_SHIFT 20 211#define UNIT_RST_L_TPC_0_SHIFT 21 212#define UNIT_RST_L_TPC_1_SHIFT 22 213#define UNIT_RST_L_TPC_2_SHIFT 23 214#define UNIT_RST_L_TPC_3_SHIFT 24 215#define UNIT_RST_L_TPC_4_SHIFT 25 216#define UNIT_RST_L_TPC_5_SHIFT 26 217#define UNIT_RST_L_TPC_6_SHIFT 27 218#define UNIT_RST_L_TPC_7_SHIFT 28 219#define UNIT_RST_L_MME_0_SHIFT 29 220#define UNIT_RST_L_MME_1_SHIFT 30 221#define UNIT_RST_L_MME_2_SHIFT 31 222 223#define UNIT_RST_H_MME_3_SHIFT 0 224#define UNIT_RST_H_HBM_0_SHIFT 1 225#define UNIT_RST_H_HBM_1_SHIFT 2 226#define UNIT_RST_H_HBM_2_SHIFT 3 227#define UNIT_RST_H_HBM_3_SHIFT 4 228#define UNIT_RST_H_NIC_0_SHIFT 5 229#define UNIT_RST_H_NIC_1_SHIFT 6 230#define UNIT_RST_H_NIC_2_SHIFT 7 231#define UNIT_RST_H_NIC_3_SHIFT 8 232#define UNIT_RST_H_NIC_4_SHIFT 9 233#define UNIT_RST_H_SM_0_SHIFT 10 234#define UNIT_RST_H_SM_1_SHIFT 11 235#define UNIT_RST_H_SM_2_SHIFT 12 236#define UNIT_RST_H_SM_3_SHIFT 13 237#define UNIT_RST_H_IF_0_SHIFT 14 238#define UNIT_RST_H_IF_1_SHIFT 15 239#define UNIT_RST_H_IF_2_SHIFT 16 240#define UNIT_RST_H_IF_3_SHIFT 17 241#define UNIT_RST_H_DMA_0_SHIFT 18 242#define UNIT_RST_H_DMA_1_SHIFT 19 243#define UNIT_RST_H_CPU_SHIFT 20 244#define UNIT_RST_H_MMU_SHIFT 21 245 246#define UNIT_RST_H_HBM_MASK ((1 << UNIT_RST_H_HBM_0_SHIFT) | \ 247 (1 << UNIT_RST_H_HBM_1_SHIFT) | \ 248 (1 << UNIT_RST_H_HBM_2_SHIFT) | \ 249 (1 << UNIT_RST_H_HBM_3_SHIFT)) 250 251#define UNIT_RST_H_NIC_MASK ((1 << UNIT_RST_H_NIC_0_SHIFT) | \ 252 (1 << UNIT_RST_H_NIC_1_SHIFT) | \ 253 (1 << UNIT_RST_H_NIC_2_SHIFT) | \ 254 (1 << UNIT_RST_H_NIC_3_SHIFT) | \ 255 (1 << UNIT_RST_H_NIC_4_SHIFT)) 256 257#define UNIT_RST_H_SM_MASK ((1 << UNIT_RST_H_SM_0_SHIFT) | \ 258 (1 << UNIT_RST_H_SM_1_SHIFT) | \ 259 (1 << UNIT_RST_H_SM_2_SHIFT) | \ 260 (1 << UNIT_RST_H_SM_3_SHIFT)) 261 262#define UNIT_RST_H_MME_MASK ((1 << UNIT_RST_H_MME_0_SHIFT) | \ 263 (1 << UNIT_RST_H_MME_1_SHIFT) | \ 264 (1 << UNIT_RST_H_MME_2_SHIFT)) 265 266#define UNIT_RST_L_MME_MASK (1 << UNIT_RST_L_MME_3_SHIFT) 267 268#define UNIT_RST_L_IF_MASK ((1 << UNIT_RST_L_IF_0_SHIFT) | \ 269 (1 << UNIT_RST_L_IF_1_SHIFT) | \ 270 (1 << UNIT_RST_L_IF_2_SHIFT) | \ 271 (1 << UNIT_RST_L_IF_3_SHIFT)) 272 273#define UNIT_RST_L_TPC_MASK ((1 << UNIT_RST_L_TPC_0_SHIFT) | \ 274 (1 << UNIT_RST_L_TPC_1_SHIFT) | \ 275 (1 << UNIT_RST_L_TPC_2_SHIFT) | \ 276 (1 << UNIT_RST_L_TPC_3_SHIFT) | \ 277 (1 << UNIT_RST_L_TPC_4_SHIFT) | \ 278 (1 << UNIT_RST_L_TPC_5_SHIFT) | \ 279 (1 << UNIT_RST_L_TPC_6_SHIFT) | \ 280 (1 << UNIT_RST_L_TPC_7_SHIFT)) 281 282/* CPU_CA53_CFG_ARM_RST_CONTROL */ 283#define CPU_CA53_CFG_ARM_RST_CONTROL_NCPUPORESET_SHIFT 0 284#define CPU_CA53_CFG_ARM_RST_CONTROL_NCPUPORESET_MASK 0x3 285#define CPU_CA53_CFG_ARM_RST_CONTROL_NCORERESET_SHIFT 4 286#define CPU_CA53_CFG_ARM_RST_CONTROL_NCORERESET_MASK 0x30 287#define CPU_CA53_CFG_ARM_RST_CONTROL_NL2RESET_SHIFT 8 288#define CPU_CA53_CFG_ARM_RST_CONTROL_NL2RESET_MASK 0x100 289#define CPU_CA53_CFG_ARM_RST_CONTROL_NPRESETDBG_SHIFT 12 290#define CPU_CA53_CFG_ARM_RST_CONTROL_NPRESETDBG_MASK 0x1000 291#define CPU_CA53_CFG_ARM_RST_CONTROL_NMBISTRESET_SHIFT 16 292#define CPU_CA53_CFG_ARM_RST_CONTROL_NMBISTRESET_MASK 0x10000 293#define CPU_CA53_CFG_ARM_RST_CONTROL_WARMRSTREQ_SHIFT 20 294#define CPU_CA53_CFG_ARM_RST_CONTROL_WARMRSTREQ_MASK 0x300000 295 296#define CPU_RESET_ASSERT (\ 297 1 << CPU_CA53_CFG_ARM_RST_CONTROL_NMBISTRESET_SHIFT) 298 299#define CPU_RESET_CORE0_DEASSERT (\ 300 1 << CPU_CA53_CFG_ARM_RST_CONTROL_NCPUPORESET_SHIFT |\ 301 1 << CPU_CA53_CFG_ARM_RST_CONTROL_NCORERESET_SHIFT |\ 302 1 << CPU_CA53_CFG_ARM_RST_CONTROL_NL2RESET_SHIFT |\ 303 1 << CPU_CA53_CFG_ARM_RST_CONTROL_NMBISTRESET_SHIFT) 304 305/* QM_IDLE_MASK is valid for all engines QM idle check */ 306#define QM_IDLE_MASK (DMA0_QM_GLBL_STS0_PQF_IDLE_MASK | \ 307 DMA0_QM_GLBL_STS0_CQF_IDLE_MASK | \ 308 DMA0_QM_GLBL_STS0_CP_IDLE_MASK) 309 310/* CGM_IDLE_MASK is valid for all engines CGM idle check */ 311#define CGM_IDLE_MASK DMA0_QM_CGM_STS_AGENT_IDLE_MASK 312 313#define TPC_IDLE_MASK ((1 << TPC0_CFG_STATUS_SCALAR_PIPE_EMPTY_SHIFT) | \ 314 (1 << TPC0_CFG_STATUS_VECTOR_PIPE_EMPTY_SHIFT) | \ 315 (1 << TPC0_CFG_STATUS_IQ_EMPTY_SHIFT) | \ 316 (1 << TPC0_CFG_STATUS_SB_EMPTY_SHIFT) | \ 317 (1 << TPC0_CFG_STATUS_QM_IDLE_SHIFT) | \ 318 (1 << TPC0_CFG_STATUS_QM_RDY_SHIFT)) 319 320#define MME0_CTRL_ARCH_STATUS_SB_A_EMPTY_MASK 0x80 321#define MME0_CTRL_ARCH_STATUS_SB_B_EMPTY_MASK 0x100 322#define MME0_CTRL_ARCH_STATUS_WBC_AXI_IDLE_MASK 0x1000 323 324#define MME_ARCH_IDLE_MASK (MME0_CTRL_ARCH_STATUS_SB_A_EMPTY_MASK | \ 325 MME0_CTRL_ARCH_STATUS_SB_B_EMPTY_MASK | \ 326 MME0_CTRL_ARCH_STATUS_WBC_AXI_IDLE_MASK) 327 328#define IS_QM_IDLE(qm_glbl_sts0, qm_cgm_sts) \ 329 ((((qm_glbl_sts0) & QM_IDLE_MASK) == QM_IDLE_MASK) && \ 330 (((qm_cgm_sts) & CGM_IDLE_MASK) == CGM_IDLE_MASK)) 331 332#define IS_DMA_IDLE(dma_core_sts0) \ 333 !(dma_core_sts0 & DMA0_CORE_STS0_BUSY_MASK) 334 335#define IS_TPC_IDLE(tpc_cfg_sts) \ 336 (((tpc_cfg_sts) & TPC_IDLE_MASK) == TPC_IDLE_MASK) 337 338#define IS_MME_IDLE(mme_arch_sts) \ 339 (((mme_arch_sts) & MME_ARCH_IDLE_MASK) == MME_ARCH_IDLE_MASK) 340 341enum axi_id { 342 AXI_ID_MME, 343 AXI_ID_TPC, 344 AXI_ID_DMA, 345 AXI_ID_NIC, /* Local NIC */ 346 AXI_ID_PCI, 347 AXI_ID_CPU, 348 AXI_ID_PSOC, 349 AXI_ID_MMU, 350 AXI_ID_NIC_FT /* Feed-Through NIC */ 351}; 352 353/* RAZWI initiator ID is built from the location in the chip and the AXI ID */ 354 355#define RAZWI_INITIATOR_AXI_ID_SHIFT 20 356#define RAZWI_INITIATOR_AXI_ID_MASK 0xF 357#define RAZWI_INITIATOR_X_SHIFT 24 358#define RAZWI_INITIATOR_X_MASK 0xF 359#define RAZWI_INITIATOR_Y_SHIFT 28 360#define RAZWI_INITIATOR_Y_MASK 0x7 361 362#define RAZWI_INITIATOR_ID_AXI_ID(axi_id) \ 363 (((axi_id) & RAZWI_INITIATOR_AXI_ID_MASK) << \ 364 RAZWI_INITIATOR_AXI_ID_SHIFT) 365 366#define RAZWI_INITIATOR_ID_X_Y(x, y) \ 367 ((((y) & RAZWI_INITIATOR_Y_MASK) << RAZWI_INITIATOR_Y_SHIFT) | \ 368 (((x) & RAZWI_INITIATOR_X_MASK) << RAZWI_INITIATOR_X_SHIFT)) 369 370#define RAZWI_INITIATOR_ID_X_Y_TPC0_NIC0 RAZWI_INITIATOR_ID_X_Y(1, 1) 371#define RAZWI_INITIATOR_ID_X_Y_TPC1 RAZWI_INITIATOR_ID_X_Y(2, 1) 372#define RAZWI_INITIATOR_ID_X_Y_MME0_0 RAZWI_INITIATOR_ID_X_Y(3, 1) 373#define RAZWI_INITIATOR_ID_X_Y_MME0_1 RAZWI_INITIATOR_ID_X_Y(4, 1) 374#define RAZWI_INITIATOR_ID_X_Y_MME1_0 RAZWI_INITIATOR_ID_X_Y(5, 1) 375#define RAZWI_INITIATOR_ID_X_Y_MME1_1 RAZWI_INITIATOR_ID_X_Y(6, 1) 376#define RAZWI_INITIATOR_ID_X_Y_TPC2 RAZWI_INITIATOR_ID_X_Y(7, 1) 377#define RAZWI_INITIATOR_ID_X_Y_TPC3_PCI_CPU_PSOC \ 378 RAZWI_INITIATOR_ID_X_Y(8, 1) 379#define RAZWI_INITIATOR_ID_X_Y_DMA_IF_W_S_0 RAZWI_INITIATOR_ID_X_Y(0, 1) 380#define RAZWI_INITIATOR_ID_X_Y_DMA_IF_E_S_0 RAZWI_INITIATOR_ID_X_Y(9, 1) 381#define RAZWI_INITIATOR_ID_X_Y_DMA_IF_W_S_1 RAZWI_INITIATOR_ID_X_Y(0, 2) 382#define RAZWI_INITIATOR_ID_X_Y_DMA_IF_E_S_1 RAZWI_INITIATOR_ID_X_Y(9, 2) 383#define RAZWI_INITIATOR_ID_X_Y_DMA_IF_W_N_0 RAZWI_INITIATOR_ID_X_Y(0, 3) 384#define RAZWI_INITIATOR_ID_X_Y_DMA_IF_E_N_0 RAZWI_INITIATOR_ID_X_Y(9, 3) 385#define RAZWI_INITIATOR_ID_X_Y_DMA_IF_W_N_1 RAZWI_INITIATOR_ID_X_Y(0, 4) 386#define RAZWI_INITIATOR_ID_X_Y_DMA_IF_E_N_1 RAZWI_INITIATOR_ID_X_Y(9, 4) 387#define RAZWI_INITIATOR_ID_X_Y_TPC4_NIC1_NIC2 RAZWI_INITIATOR_ID_X_Y(1, 6) 388#define RAZWI_INITIATOR_ID_X_Y_TPC5 RAZWI_INITIATOR_ID_X_Y(2, 6) 389#define RAZWI_INITIATOR_ID_X_Y_MME2_0 RAZWI_INITIATOR_ID_X_Y(3, 6) 390#define RAZWI_INITIATOR_ID_X_Y_MME2_1 RAZWI_INITIATOR_ID_X_Y(4, 6) 391#define RAZWI_INITIATOR_ID_X_Y_MME3_0 RAZWI_INITIATOR_ID_X_Y(5, 6) 392#define RAZWI_INITIATOR_ID_X_Y_MME3_1 RAZWI_INITIATOR_ID_X_Y(6, 6) 393#define RAZWI_INITIATOR_ID_X_Y_TPC6 RAZWI_INITIATOR_ID_X_Y(7, 6) 394#define RAZWI_INITIATOR_ID_X_Y_TPC7_NIC4_NIC5 RAZWI_INITIATOR_ID_X_Y(8, 6) 395 396#define PSOC_ETR_AXICTL_PROTCTRLBIT1_SHIFT 1 397#define PSOC_ETR_AXICTL_PROTCTRLBIT0_MASK 0x1 398#define PSOC_ETR_AXICTL_PROTCTRLBIT1_MASK 0x2 399#define PSOC_ETR_AXICTL_WRBURSTLEN_MASK 0xF00 400 401/* STLB_CACHE_INV */ 402#define STLB_CACHE_INV_PRODUCER_INDEX_SHIFT 0 403#define STLB_CACHE_INV_PRODUCER_INDEX_MASK 0xFF 404#define STLB_CACHE_INV_INDEX_MASK_SHIFT 8 405#define STLB_CACHE_INV_INDEX_MASK_MASK 0xFF00 406 407#define MME_ACC_ACC_STALL_R_SHIFT 0 408#define MME_SBAB_SB_STALL_R_SHIFT 0 409 410#define PCIE_WRAP_LBW_PROT_OVR_RD_EN_MASK 0x700 411#define PCIE_WRAP_LBW_PROT_OVR_WR_EN_MASK 0x7000 412 413#define PCIE_WRAP_LBW_DRAIN_CFG_EN_SHIFT 0 414#define PCIE_WRAP_HBW_DRAIN_CFG_EN_SHIFT 0 415 416/* DMA_IF_HBM_CRED_EN */ 417#define DMA_IF_HBM_CRED_EN_READ_CREDIT_EN_SHIFT 0 418#define DMA_IF_HBM_CRED_EN_READ_CREDIT_EN_MASK 0x1 419#define DMA_IF_HBM_CRED_EN_WRITE_CREDIT_EN_SHIFT 1 420#define DMA_IF_HBM_CRED_EN_WRITE_CREDIT_EN_MASK 0x2 421 422#define DMA_IF_DOWN_CHX_SCRAM_SRAM_EN_VAL_SHIFT 0 423#define DMA_IF_DOWN_CHX_SCRAM_HBM_EN_VAL_SHIFT 0 424#define DMA_IF_DOWN_CHX_E2E_HBM_EN_VAL_SHIFT 0 425#define DMA_IF_DOWN_CHX_E2E_PCI_EN_VAL_SHIFT 0 426 427#define IF_RTR_CTRL_SCRAM_SRAM_EN_VAL_SHIFT 0 428#define IF_RTR_CTRL_SCRAM_HBM_EN_VAL_SHIFT 0 429 430#define IF_RTR_CTRL_E2E_HBM_EN_VAL_SHIFT 0 431#define IF_RTR_CTRL_E2E_PCI_EN_VAL_SHIFT 0 432 433/* MMU_UP_PAGE_ERROR_CAPTURE */ 434#define MMU_UP_PAGE_ERROR_CAPTURE_VA_49_32_MASK 0x3FFFF 435#define MMU_UP_PAGE_ERROR_CAPTURE_ENTRY_VALID_MASK 0x40000 436 437/* MMU_UP_ACCESS_ERROR_CAPTURE */ 438#define MMU_UP_ACCESS_ERROR_CAPTURE_VA_49_32_MASK 0x3FFFF 439#define MMU_UP_ACCESS_ERROR_CAPTURE_ENTRY_VALID_MASK 0x40000 440 441#define QM_ARB_ERR_MSG_EN_CHOISE_OVF_MASK 0x1 442#define QM_ARB_ERR_MSG_EN_CHOISE_WDT_MASK 0x2 443#define QM_ARB_ERR_MSG_EN_AXI_LBW_ERR_MASK 0x4 444 445#define QM_ARB_ERR_MSG_EN_MASK (\ 446 QM_ARB_ERR_MSG_EN_CHOISE_OVF_MASK |\ 447 QM_ARB_ERR_MSG_EN_AXI_LBW_ERR_MASK) 448 449#define PCIE_AUX_FLR_CTRL_HW_CTRL_MASK 0x1 450#define PCIE_AUX_FLR_CTRL_INT_MASK_MASK 0x2 451 452#define SYNC_MNGR_W_S_SYNC_MNGR_OBJS_MON_STATUS_0_VALID_SHIFT 0 453#define SYNC_MNGR_W_S_SYNC_MNGR_OBJS_MON_STATUS_0_VALID_MASK 0x1 454#define SYNC_MNGR_W_S_SYNC_MNGR_OBJS_MON_STATUS_0_PENDING_SHIFT 1 455#define SYNC_MNGR_W_S_SYNC_MNGR_OBJS_MON_STATUS_0_PENDING_MASK 0x1FE 456#define SYNC_MNGR_W_S_SYNC_MNGR_OBJS_MON_ARM_0_SID_SHIFT 0 457#define SYNC_MNGR_W_S_SYNC_MNGR_OBJS_MON_ARM_0_SID_MASK 0xFF 458#define SYNC_MNGR_W_S_SYNC_MNGR_OBJS_MON_ARM_0_MASK_SHIFT 8 459#define SYNC_MNGR_W_S_SYNC_MNGR_OBJS_MON_ARM_0_MASK_MASK 0xFF00 460#define SYNC_MNGR_W_S_SYNC_MNGR_OBJS_MON_ARM_0_SOP_SHIFT 16 461#define SYNC_MNGR_W_S_SYNC_MNGR_OBJS_MON_ARM_0_SOP_MASK 0x10000 462#define SYNC_MNGR_W_S_SYNC_MNGR_OBJS_MON_ARM_0_SOD_SHIFT 17 463#define SYNC_MNGR_W_S_SYNC_MNGR_OBJS_MON_ARM_0_SOD_MASK 0xFFFE0000 464#define TPC0_QM_CP_STS_0_FENCE_ID_SHIFT 20 465#define TPC0_QM_CP_STS_0_FENCE_ID_MASK 0x300000 466#define TPC0_QM_CP_STS_0_FENCE_IN_PROGRESS_SHIFT 22 467#define TPC0_QM_CP_STS_0_FENCE_IN_PROGRESS_MASK 0x400000 468 469#endif /* GAUDI_MASKS_H_ */