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