Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0
0002  *
0003  * Copyright 2016-2018 HabanaLabs, Ltd.
0004  * All Rights Reserved.
0005  *
0006  */
0007 
0008 #ifndef ASIC_REG_GOYA_MASKS_H_
0009 #define ASIC_REG_GOYA_MASKS_H_
0010 
0011 #include "goya_regs.h"
0012 
0013 /* Useful masks for bits in various registers */
0014 #define QMAN_DMA_ENABLE     (\
0015     (1 << DMA_QM_0_GLBL_CFG0_PQF_EN_SHIFT) | \
0016     (1 << DMA_QM_0_GLBL_CFG0_CQF_EN_SHIFT) | \
0017     (1 << DMA_QM_0_GLBL_CFG0_CP_EN_SHIFT) | \
0018     (1 << DMA_QM_0_GLBL_CFG0_DMA_EN_SHIFT))
0019 
0020 #define QMAN_DMA_FULLY_TRUSTED  (\
0021     (1 << DMA_QM_0_GLBL_PROT_PQF_PROT_SHIFT) | \
0022     (1 << DMA_QM_0_GLBL_PROT_CQF_PROT_SHIFT) | \
0023     (1 << DMA_QM_0_GLBL_PROT_CP_PROT_SHIFT) | \
0024     (1 << DMA_QM_0_GLBL_PROT_DMA_PROT_SHIFT) | \
0025     (1 << DMA_QM_0_GLBL_PROT_PQF_ERR_PROT_SHIFT) | \
0026     (1 << DMA_QM_0_GLBL_PROT_CQF_ERR_PROT_SHIFT) | \
0027     (1 << DMA_QM_0_GLBL_PROT_CP_ERR_PROT_SHIFT) | \
0028     (1 << DMA_QM_0_GLBL_PROT_DMA_ERR_PROT_SHIFT))
0029 
0030 #define QMAN_DMA_PARTLY_TRUSTED (\
0031     (1 << DMA_QM_0_GLBL_PROT_PQF_PROT_SHIFT) | \
0032     (1 << DMA_QM_0_GLBL_PROT_CQF_PROT_SHIFT) | \
0033     (1 << DMA_QM_0_GLBL_PROT_CP_PROT_SHIFT) | \
0034     (1 << DMA_QM_0_GLBL_PROT_PQF_ERR_PROT_SHIFT) | \
0035     (1 << DMA_QM_0_GLBL_PROT_CQF_ERR_PROT_SHIFT) | \
0036     (1 << DMA_QM_0_GLBL_PROT_CP_ERR_PROT_SHIFT) | \
0037     (1 << DMA_QM_0_GLBL_PROT_DMA_ERR_PROT_SHIFT))
0038 
0039 #define QMAN_DMA_STOP       (\
0040     (1 << DMA_QM_0_GLBL_CFG1_PQF_STOP_SHIFT) | \
0041     (1 << DMA_QM_0_GLBL_CFG1_CQF_STOP_SHIFT) | \
0042     (1 << DMA_QM_0_GLBL_CFG1_CP_STOP_SHIFT) | \
0043     (1 << DMA_QM_0_GLBL_CFG1_DMA_STOP_SHIFT))
0044 
0045 #define QMAN_DMA_IS_STOPPED     (\
0046     (1 << DMA_QM_0_GLBL_STS0_PQF_IS_STOP_SHIFT) | \
0047     (1 << DMA_QM_0_GLBL_STS0_CQF_IS_STOP_SHIFT) | \
0048     (1 << DMA_QM_0_GLBL_STS0_CP_IS_STOP_SHIFT) | \
0049     (1 << DMA_QM_0_GLBL_STS0_DMA_IS_STOP_SHIFT))
0050 
0051 #define QMAN_DMA_ERR_MSG_EN (\
0052     (1 << DMA_QM_0_GLBL_ERR_CFG_PQF_ERR_MSG_EN_SHIFT) | \
0053     (1 << DMA_QM_0_GLBL_ERR_CFG_CQF_ERR_MSG_EN_SHIFT) | \
0054     (1 << DMA_QM_0_GLBL_ERR_CFG_CP_ERR_MSG_EN_SHIFT) | \
0055     (1 << DMA_QM_0_GLBL_ERR_CFG_DMA_ERR_MSG_EN_SHIFT) | \
0056     (1 << DMA_QM_0_GLBL_ERR_CFG_PQF_STOP_ON_ERR_SHIFT) | \
0057     (1 << DMA_QM_0_GLBL_ERR_CFG_CQF_STOP_ON_ERR_SHIFT) | \
0058     (1 << DMA_QM_0_GLBL_ERR_CFG_CP_STOP_ON_ERR_SHIFT))
0059 
0060 #define QMAN_MME_ENABLE     (\
0061     (1 << MME_QM_GLBL_CFG0_PQF_EN_SHIFT) | \
0062     (1 << MME_QM_GLBL_CFG0_CQF_EN_SHIFT) | \
0063     (1 << MME_QM_GLBL_CFG0_CP_EN_SHIFT))
0064 
0065 #define CMDQ_MME_ENABLE     (\
0066     (1 << MME_CMDQ_GLBL_CFG0_CQF_EN_SHIFT) | \
0067     (1 << MME_CMDQ_GLBL_CFG0_CP_EN_SHIFT))
0068 
0069 #define QMAN_MME_STOP       (\
0070     (1 << MME_QM_GLBL_CFG1_PQF_STOP_SHIFT) | \
0071     (1 << MME_QM_GLBL_CFG1_CQF_STOP_SHIFT) | \
0072     (1 << MME_QM_GLBL_CFG1_CP_STOP_SHIFT))
0073 
0074 #define CMDQ_MME_STOP       (\
0075     (1 << MME_CMDQ_GLBL_CFG1_CQF_STOP_SHIFT) | \
0076     (1 << MME_CMDQ_GLBL_CFG1_CP_STOP_SHIFT))
0077 
0078 #define QMAN_MME_ERR_MSG_EN (\
0079     (1 << MME_QM_GLBL_ERR_CFG_PQF_ERR_MSG_EN_SHIFT) | \
0080     (1 << MME_QM_GLBL_ERR_CFG_CQF_ERR_MSG_EN_SHIFT) | \
0081     (1 << MME_QM_GLBL_ERR_CFG_CP_ERR_MSG_EN_SHIFT) | \
0082     (1 << MME_QM_GLBL_ERR_CFG_DMA_ERR_MSG_EN_SHIFT) | \
0083     (1 << MME_QM_GLBL_ERR_CFG_PQF_STOP_ON_ERR_SHIFT) | \
0084     (1 << MME_QM_GLBL_ERR_CFG_CQF_STOP_ON_ERR_SHIFT) | \
0085     (1 << MME_QM_GLBL_ERR_CFG_CP_STOP_ON_ERR_SHIFT) | \
0086     (1 << MME_QM_GLBL_ERR_CFG_DMA_STOP_ON_ERR_SHIFT))
0087 
0088 #define CMDQ_MME_ERR_MSG_EN (\
0089     (1 << MME_CMDQ_GLBL_ERR_CFG_PQF_ERR_MSG_EN_SHIFT) | \
0090     (1 << MME_CMDQ_GLBL_ERR_CFG_CQF_ERR_MSG_EN_SHIFT) | \
0091     (1 << MME_CMDQ_GLBL_ERR_CFG_CP_ERR_MSG_EN_SHIFT) | \
0092     (1 << MME_CMDQ_GLBL_ERR_CFG_DMA_ERR_MSG_EN_SHIFT) | \
0093     (1 << MME_CMDQ_GLBL_ERR_CFG_PQF_STOP_ON_ERR_SHIFT) | \
0094     (1 << MME_CMDQ_GLBL_ERR_CFG_CQF_STOP_ON_ERR_SHIFT) | \
0095     (1 << MME_CMDQ_GLBL_ERR_CFG_CP_STOP_ON_ERR_SHIFT) | \
0096     (1 << MME_CMDQ_GLBL_ERR_CFG_DMA_STOP_ON_ERR_SHIFT))
0097 
0098 #define QMAN_MME_ERR_PROT   (\
0099     (1 << MME_QM_GLBL_PROT_PQF_ERR_PROT_SHIFT) | \
0100     (1 << MME_QM_GLBL_PROT_CQF_ERR_PROT_SHIFT) | \
0101     (1 << MME_QM_GLBL_PROT_CP_ERR_PROT_SHIFT) | \
0102     (1 << MME_QM_GLBL_PROT_DMA_ERR_PROT_SHIFT))
0103 
0104 #define CMDQ_MME_ERR_PROT   (\
0105     (1 << MME_CMDQ_GLBL_PROT_PQF_ERR_PROT_SHIFT) | \
0106     (1 << MME_CMDQ_GLBL_PROT_CQF_ERR_PROT_SHIFT) | \
0107     (1 << MME_CMDQ_GLBL_PROT_CP_ERR_PROT_SHIFT) | \
0108     (1 << MME_CMDQ_GLBL_PROT_DMA_ERR_PROT_SHIFT))
0109 
0110 #define QMAN_TPC_ENABLE     (\
0111     (1 << TPC0_QM_GLBL_CFG0_PQF_EN_SHIFT) | \
0112     (1 << TPC0_QM_GLBL_CFG0_CQF_EN_SHIFT) | \
0113     (1 << TPC0_QM_GLBL_CFG0_CP_EN_SHIFT))
0114 
0115 #define CMDQ_TPC_ENABLE     (\
0116     (1 << TPC0_CMDQ_GLBL_CFG0_CQF_EN_SHIFT) | \
0117     (1 << TPC0_CMDQ_GLBL_CFG0_CP_EN_SHIFT))
0118 
0119 #define QMAN_TPC_STOP       (\
0120     (1 << TPC0_QM_GLBL_CFG1_PQF_STOP_SHIFT) | \
0121     (1 << TPC0_QM_GLBL_CFG1_CQF_STOP_SHIFT) | \
0122     (1 << TPC0_QM_GLBL_CFG1_CP_STOP_SHIFT))
0123 
0124 #define CMDQ_TPC_STOP       (\
0125     (1 << TPC0_CMDQ_GLBL_CFG1_CQF_STOP_SHIFT) | \
0126     (1 << TPC0_CMDQ_GLBL_CFG1_CP_STOP_SHIFT))
0127 
0128 #define QMAN_TPC_ERR_MSG_EN (\
0129     (1 << TPC0_QM_GLBL_ERR_CFG_PQF_ERR_MSG_EN_SHIFT) | \
0130     (1 << TPC0_QM_GLBL_ERR_CFG_CQF_ERR_MSG_EN_SHIFT) | \
0131     (1 << TPC0_QM_GLBL_ERR_CFG_CP_ERR_MSG_EN_SHIFT) | \
0132     (1 << TPC0_QM_GLBL_ERR_CFG_DMA_ERR_MSG_EN_SHIFT) | \
0133     (1 << TPC0_QM_GLBL_ERR_CFG_PQF_STOP_ON_ERR_SHIFT) | \
0134     (1 << TPC0_QM_GLBL_ERR_CFG_CQF_STOP_ON_ERR_SHIFT) | \
0135     (1 << TPC0_QM_GLBL_ERR_CFG_CP_STOP_ON_ERR_SHIFT) | \
0136     (1 << TPC0_QM_GLBL_ERR_CFG_DMA_STOP_ON_ERR_SHIFT))
0137 
0138 #define CMDQ_TPC_ERR_MSG_EN (\
0139     (1 << TPC0_CMDQ_GLBL_ERR_CFG_PQF_ERR_MSG_EN_SHIFT) | \
0140     (1 << TPC0_CMDQ_GLBL_ERR_CFG_CQF_ERR_MSG_EN_SHIFT) | \
0141     (1 << TPC0_CMDQ_GLBL_ERR_CFG_CP_ERR_MSG_EN_SHIFT) | \
0142     (1 << TPC0_CMDQ_GLBL_ERR_CFG_DMA_ERR_MSG_EN_SHIFT) | \
0143     (1 << TPC0_CMDQ_GLBL_ERR_CFG_PQF_STOP_ON_ERR_SHIFT) | \
0144     (1 << TPC0_CMDQ_GLBL_ERR_CFG_CQF_STOP_ON_ERR_SHIFT) | \
0145     (1 << TPC0_CMDQ_GLBL_ERR_CFG_CP_STOP_ON_ERR_SHIFT) | \
0146     (1 << TPC0_CMDQ_GLBL_ERR_CFG_DMA_STOP_ON_ERR_SHIFT))
0147 
0148 #define QMAN_TPC_ERR_PROT   (\
0149     (1 << TPC0_QM_GLBL_PROT_PQF_ERR_PROT_SHIFT) | \
0150     (1 << TPC0_QM_GLBL_PROT_CQF_ERR_PROT_SHIFT) | \
0151     (1 << TPC0_QM_GLBL_PROT_CP_ERR_PROT_SHIFT) | \
0152     (1 << TPC0_QM_GLBL_PROT_DMA_ERR_PROT_SHIFT))
0153 
0154 #define CMDQ_TPC_ERR_PROT   (\
0155     (1 << TPC0_CMDQ_GLBL_PROT_PQF_ERR_PROT_SHIFT) | \
0156     (1 << TPC0_CMDQ_GLBL_PROT_CQF_ERR_PROT_SHIFT) | \
0157     (1 << TPC0_CMDQ_GLBL_PROT_CP_ERR_PROT_SHIFT) | \
0158     (1 << TPC0_CMDQ_GLBL_PROT_DMA_ERR_PROT_SHIFT))
0159 
0160 /* RESETS */
0161 #define DMA_MME_TPC_RESET   (\
0162             1 << PSOC_GLOBAL_CONF_SW_ALL_RST_CFG_TPC_SHIFT |\
0163             1 << PSOC_GLOBAL_CONF_SW_ALL_RST_CFG_MME_SHIFT |\
0164             1 << PSOC_GLOBAL_CONF_SW_ALL_RST_CFG_DMA_SHIFT)
0165 
0166 #define RESET_ALL   (\
0167             1 << PSOC_GLOBAL_CONF_SW_ALL_RST_CFG_TPC_SHIFT |\
0168             1 << PSOC_GLOBAL_CONF_SW_ALL_RST_CFG_MME_SHIFT |\
0169             1 << PSOC_GLOBAL_CONF_SW_ALL_RST_CFG_MC_SHIFT |\
0170             1 << PSOC_GLOBAL_CONF_SW_ALL_RST_CFG_CPU_SHIFT |\
0171             1 << PSOC_GLOBAL_CONF_SW_ALL_RST_CFG_PSOC_SHIFT |\
0172             1 << PSOC_GLOBAL_CONF_SW_ALL_RST_CFG_IC_IF_SHIFT |\
0173             PSOC_GLOBAL_CONF_SW_ALL_RST_CFG_SRAM_MASK |\
0174             1 << PSOC_GLOBAL_CONF_SW_ALL_RST_CFG_DMA_SHIFT |\
0175             1 << PSOC_GLOBAL_CONF_SW_ALL_RST_CFG_DMA_IF_SHIFT)
0176 
0177 #define CA53_RESET      (\
0178             (~\
0179             (1 << PSOC_GLOBAL_CONF_UNIT_RST_N_CPU_SHIFT)\
0180             ) & 0x7FFFFF)
0181 
0182 #define CPU_RESET_ASSERT    (\
0183             1 << CPU_CA53_CFG_ARM_RST_CONTROL_NMBISTRESET_SHIFT)
0184 
0185 #define CPU_RESET_CORE0_DEASSERT    (\
0186             1 << CPU_CA53_CFG_ARM_RST_CONTROL_NCPUPORESET_SHIFT |\
0187             1 << CPU_CA53_CFG_ARM_RST_CONTROL_NCORERESET_SHIFT |\
0188             1 << CPU_CA53_CFG_ARM_RST_CONTROL_NL2RESET_SHIFT |\
0189             1 << CPU_CA53_CFG_ARM_RST_CONTROL_NMBISTRESET_SHIFT)
0190 
0191 #define GOYA_IRQ_HBW_ID_MASK            0x1FFF
0192 #define GOYA_IRQ_HBW_ID_SHIFT           0
0193 #define GOYA_IRQ_HBW_INTERNAL_ID_MASK       0xE000
0194 #define GOYA_IRQ_HBW_INTERNAL_ID_SHIFT      13
0195 #define GOYA_IRQ_HBW_AGENT_ID_MASK      0x1F0000
0196 #define GOYA_IRQ_HBW_AGENT_ID_SHIFT     16
0197 #define GOYA_IRQ_HBW_Y_MASK         0xE00000
0198 #define GOYA_IRQ_HBW_Y_SHIFT            21
0199 #define GOYA_IRQ_HBW_X_MASK         0x7000000
0200 #define GOYA_IRQ_HBW_X_SHIFT            24
0201 #define GOYA_IRQ_LBW_ID_MASK            0xFF
0202 #define GOYA_IRQ_LBW_ID_SHIFT           0
0203 #define GOYA_IRQ_LBW_INTERNAL_ID_MASK       0x700
0204 #define GOYA_IRQ_LBW_INTERNAL_ID_SHIFT      8
0205 #define GOYA_IRQ_LBW_AGENT_ID_MASK      0xF800
0206 #define GOYA_IRQ_LBW_AGENT_ID_SHIFT     11
0207 #define GOYA_IRQ_LBW_Y_MASK         0x70000
0208 #define GOYA_IRQ_LBW_Y_SHIFT            16
0209 #define GOYA_IRQ_LBW_X_MASK         0x380000
0210 #define GOYA_IRQ_LBW_X_SHIFT            19
0211 
0212 #define DMA_QM_IDLE_MASK    (DMA_QM_0_GLBL_STS0_PQF_IDLE_MASK | \
0213                 DMA_QM_0_GLBL_STS0_CQF_IDLE_MASK | \
0214                 DMA_QM_0_GLBL_STS0_CP_IDLE_MASK | \
0215                 DMA_QM_0_GLBL_STS0_DMA_IDLE_MASK)
0216 
0217 #define TPC_QM_IDLE_MASK    (TPC0_QM_GLBL_STS0_PQF_IDLE_MASK | \
0218                 TPC0_QM_GLBL_STS0_CQF_IDLE_MASK | \
0219                 TPC0_QM_GLBL_STS0_CP_IDLE_MASK)
0220 
0221 #define TPC_CMDQ_IDLE_MASK  (TPC0_CMDQ_GLBL_STS0_CQF_IDLE_MASK | \
0222                 TPC0_CMDQ_GLBL_STS0_CP_IDLE_MASK)
0223 
0224 #define TPC_CFG_IDLE_MASK   (TPC0_CFG_STATUS_SCALAR_PIPE_EMPTY_MASK | \
0225                 TPC0_CFG_STATUS_VECTOR_PIPE_EMPTY_MASK | \
0226                 TPC0_CFG_STATUS_IQ_EMPTY_MASK | \
0227                 TPC0_CFG_STATUS_NO_INFLIGH_MEM_ACCESSES_MASK)
0228 
0229 #define MME_QM_IDLE_MASK    (MME_QM_GLBL_STS0_PQF_IDLE_MASK | \
0230                 MME_QM_GLBL_STS0_CQF_IDLE_MASK | \
0231                 MME_QM_GLBL_STS0_CP_IDLE_MASK)
0232 
0233 #define MME_CMDQ_IDLE_MASK  (MME_CMDQ_GLBL_STS0_CQF_IDLE_MASK | \
0234                 MME_CMDQ_GLBL_STS0_CP_IDLE_MASK)
0235 
0236 #define MME_ARCH_IDLE_MASK  (MME_ARCH_STATUS_SB_A_EMPTY_MASK | \
0237                 MME_ARCH_STATUS_SB_B_EMPTY_MASK | \
0238                 MME_ARCH_STATUS_SB_CIN_EMPTY_MASK | \
0239                 MME_ARCH_STATUS_SB_COUT_EMPTY_MASK)
0240 
0241 #define MME_SHADOW_IDLE_MASK    (MME_SHADOW_0_STATUS_A_MASK | \
0242                 MME_SHADOW_0_STATUS_B_MASK | \
0243                 MME_SHADOW_0_STATUS_CIN_MASK | \
0244                 MME_SHADOW_0_STATUS_COUT_MASK | \
0245                 MME_SHADOW_0_STATUS_TE_MASK | \
0246                 MME_SHADOW_0_STATUS_LD_MASK | \
0247                 MME_SHADOW_0_STATUS_ST_MASK)
0248 
0249 #define TPC1_CFG_TPC_STALL_V_SHIFT TPC0_CFG_TPC_STALL_V_SHIFT
0250 #define TPC2_CFG_TPC_STALL_V_SHIFT TPC0_CFG_TPC_STALL_V_SHIFT
0251 #define TPC3_CFG_TPC_STALL_V_SHIFT TPC0_CFG_TPC_STALL_V_SHIFT
0252 #define TPC4_CFG_TPC_STALL_V_SHIFT TPC0_CFG_TPC_STALL_V_SHIFT
0253 #define TPC5_CFG_TPC_STALL_V_SHIFT TPC0_CFG_TPC_STALL_V_SHIFT
0254 #define TPC6_CFG_TPC_STALL_V_SHIFT TPC0_CFG_TPC_STALL_V_SHIFT
0255 #define TPC7_CFG_TPC_STALL_V_SHIFT TPC0_CFG_TPC_STALL_V_SHIFT
0256 
0257 #define DMA_QM_1_GLBL_CFG1_DMA_STOP_SHIFT DMA_QM_0_GLBL_CFG1_DMA_STOP_SHIFT
0258 #define DMA_QM_2_GLBL_CFG1_DMA_STOP_SHIFT DMA_QM_0_GLBL_CFG1_DMA_STOP_SHIFT
0259 #define DMA_QM_3_GLBL_CFG1_DMA_STOP_SHIFT DMA_QM_0_GLBL_CFG1_DMA_STOP_SHIFT
0260 #define DMA_QM_4_GLBL_CFG1_DMA_STOP_SHIFT DMA_QM_0_GLBL_CFG1_DMA_STOP_SHIFT
0261 
0262 #define PSOC_ETR_AXICTL_PROTCTRLBIT1_SHIFT  1
0263 #define PSOC_ETR_AXICTL_PROTCTRLBIT0_MASK   0x1
0264 #define PSOC_ETR_AXICTL_PROTCTRLBIT1_MASK   0x2
0265 #define PSOC_ETR_AXICTL_WRBURSTLEN_MASK     0xF00
0266 
0267 #endif /* ASIC_REG_GOYA_MASKS_H_ */