gaudi2_masks.h 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. /* SPDX-License-Identifier: GPL-2.0
  2. *
  3. * Copyright 2020-2022 HabanaLabs, Ltd.
  4. * All Rights Reserved.
  5. *
  6. */
  7. #ifndef GAUDI2_MASKS_H_
  8. #define GAUDI2_MASKS_H_
  9. #include "../include/gaudi2/asic_reg/gaudi2_regs.h"
  10. /* Useful masks for bits in various registers */
  11. #define QMAN_GLBL_ERR_CFG_MSG_EN_MASK \
  12. ((0xF << PDMA0_QM_GLBL_ERR_CFG_PQF_ERR_MSG_EN_SHIFT) | \
  13. (0x1F << PDMA0_QM_GLBL_ERR_CFG_CQF_ERR_MSG_EN_SHIFT) | \
  14. (0x1F << PDMA0_QM_GLBL_ERR_CFG_CP_ERR_MSG_EN_SHIFT))
  15. #define QMAN_GLBL_ERR_CFG_STOP_ON_ERR_EN_MASK \
  16. ((0xF << PDMA0_QM_GLBL_ERR_CFG_PQF_STOP_ON_ERR_SHIFT) | \
  17. (0x1F << PDMA0_QM_GLBL_ERR_CFG_CQF_STOP_ON_ERR_SHIFT) | \
  18. (0x1F << PDMA0_QM_GLBL_ERR_CFG_CP_STOP_ON_ERR_SHIFT) | \
  19. (0x1 << PDMA0_QM_GLBL_ERR_CFG_ARB_STOP_ON_ERR_SHIFT))
  20. #define QMAN_GLBL_ERR_CFG1_MSG_EN_MASK \
  21. (0x1 << PDMA0_QM_GLBL_ERR_CFG1_CQF_ERR_MSG_EN_SHIFT)
  22. #define QMAN_GLBL_ERR_CFG1_STOP_ON_ERR_EN_MASK \
  23. ((0x1 << PDMA0_QM_GLBL_ERR_CFG1_CQF_STOP_ON_ERR_SHIFT) | \
  24. (0x1 << PDMA0_QM_GLBL_ERR_CFG1_ARC_STOP_ON_ERR_SHIFT))
  25. #define QM_PQC_LBW_WDATA \
  26. ((1 << DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_VAL_SHIFT) | \
  27. (1 << DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_INC_SHIFT))
  28. #define QMAN_MAKE_TRUSTED \
  29. ((0xF << PDMA0_QM_GLBL_PROT_PQF_SHIFT) | \
  30. (0x1 << PDMA0_QM_GLBL_PROT_ERR_SHIFT) | \
  31. (0x1 << PDMA0_QM_GLBL_PROT_PQC_SHIFT))
  32. #define QMAN_MAKE_TRUSTED_TEST_MODE \
  33. ((0xF << PDMA0_QM_GLBL_PROT_PQF_SHIFT) | \
  34. (0xF << PDMA0_QM_GLBL_PROT_CQF_SHIFT) | \
  35. (0xF << PDMA0_QM_GLBL_PROT_CP_SHIFT) | \
  36. (0x1 << PDMA0_QM_GLBL_PROT_ERR_SHIFT) | \
  37. (0x1 << PDMA0_QM_GLBL_PROT_PQC_SHIFT))
  38. #define QMAN_ENABLE \
  39. ((0xF << PDMA0_QM_GLBL_CFG0_PQF_EN_SHIFT) | \
  40. (0x1F << PDMA0_QM_GLBL_CFG0_CQF_EN_SHIFT) | \
  41. (0x1F << PDMA0_QM_GLBL_CFG0_CP_EN_SHIFT) | \
  42. (0x1 << PDMA0_QM_GLBL_CFG0_ARC_CQF_EN_SHIFT))
  43. #define PDMA0_QMAN_ENABLE \
  44. ((0x3 << PDMA0_QM_GLBL_CFG0_PQF_EN_SHIFT) | \
  45. (0x1F << PDMA0_QM_GLBL_CFG0_CQF_EN_SHIFT) | \
  46. (0x1F << PDMA0_QM_GLBL_CFG0_CP_EN_SHIFT) | \
  47. (0x1 << PDMA0_QM_GLBL_CFG0_ARC_CQF_EN_SHIFT))
  48. #define PDMA1_QMAN_ENABLE \
  49. ((0x1 << PDMA0_QM_GLBL_CFG0_PQF_EN_SHIFT) | \
  50. (0x1F << PDMA0_QM_GLBL_CFG0_CQF_EN_SHIFT) | \
  51. (0x1F << PDMA0_QM_GLBL_CFG0_CP_EN_SHIFT) | \
  52. (0x1 << PDMA0_QM_GLBL_CFG0_ARC_CQF_EN_SHIFT))
  53. /* QM_IDLE_MASK is valid for all engines QM idle check */
  54. #define QM_IDLE_MASK (DCORE0_EDMA0_QM_GLBL_STS0_PQF_IDLE_MASK | \
  55. DCORE0_EDMA0_QM_GLBL_STS0_CQF_IDLE_MASK | \
  56. DCORE0_EDMA0_QM_GLBL_STS0_CP_IDLE_MASK)
  57. #define QM_ARC_IDLE_MASK DCORE0_EDMA0_QM_GLBL_STS1_ARC_CQF_IDLE_MASK
  58. #define MME_ARCH_IDLE_MASK \
  59. (DCORE0_MME_CTRL_LO_ARCH_STATUS_SB_IN_EMPTY_MASK | \
  60. DCORE0_MME_CTRL_LO_ARCH_STATUS_AGU_COUT_SM_IDLE_MASK | \
  61. DCORE0_MME_CTRL_LO_ARCH_STATUS_WBC_AXI_IDLE_MASK | \
  62. DCORE0_MME_CTRL_LO_ARCH_STATUS_SB_IN_AXI_IDLE_MASK | \
  63. DCORE0_MME_CTRL_LO_ARCH_STATUS_QM_IDLE_MASK | \
  64. DCORE0_MME_CTRL_LO_ARCH_STATUS_QM_RDY_MASK)
  65. #define TPC_IDLE_MASK (DCORE0_TPC0_CFG_STATUS_SCALAR_PIPE_EMPTY_MASK | \
  66. DCORE0_TPC0_CFG_STATUS_VECTOR_PIPE_EMPTY_MASK | \
  67. DCORE0_TPC0_CFG_STATUS_IQ_EMPTY_MASK | \
  68. DCORE0_TPC0_CFG_STATUS_SB_EMPTY_MASK | \
  69. DCORE0_TPC0_CFG_STATUS_QM_IDLE_MASK | \
  70. DCORE0_TPC0_CFG_STATUS_QM_RDY_MASK)
  71. #define DCORE0_TPC0_QM_CGM_STS_AGENT_IDLE_MASK 0x100
  72. /* CGM_IDLE_MASK is valid for all engines CGM idle check */
  73. #define CGM_IDLE_MASK DCORE0_TPC0_QM_CGM_STS_AGENT_IDLE_MASK
  74. #define QM_GLBL_CFG1_PQF_STOP PDMA0_QM_GLBL_CFG1_PQF_STOP_MASK
  75. #define QM_GLBL_CFG1_CQF_STOP PDMA0_QM_GLBL_CFG1_CQF_STOP_MASK
  76. #define QM_GLBL_CFG1_CP_STOP PDMA0_QM_GLBL_CFG1_CP_STOP_MASK
  77. #define QM_GLBL_CFG1_PQF_FLUSH PDMA0_QM_GLBL_CFG1_PQF_FLUSH_MASK
  78. #define QM_GLBL_CFG1_CQF_FLUSH PDMA0_QM_GLBL_CFG1_CQF_FLUSH_MASK
  79. #define QM_GLBL_CFG1_CP_FLUSH PDMA0_QM_GLBL_CFG1_CP_FLUSH_MASK
  80. #define QM_GLBL_CFG2_ARC_CQF_STOP PDMA0_QM_GLBL_CFG2_ARC_CQF_STOP_MASK
  81. #define QM_GLBL_CFG2_ARC_CQF_FLUSH PDMA0_QM_GLBL_CFG2_ARC_CQF_FLUSH_MASK
  82. #define QM_ARB_ERR_MSG_EN_CHOISE_OVF_MASK 0x1
  83. #define QM_ARB_ERR_MSG_EN_CHOISE_WDT_MASK 0x2
  84. #define QM_ARB_ERR_MSG_EN_AXI_LBW_ERR_MASK 0x4
  85. #define QM_ARB_ERR_MSG_EN_MASK (\
  86. QM_ARB_ERR_MSG_EN_CHOISE_OVF_MASK |\
  87. QM_ARB_ERR_MSG_EN_CHOISE_WDT_MASK |\
  88. QM_ARB_ERR_MSG_EN_AXI_LBW_ERR_MASK)
  89. #define PCIE_AUX_FLR_CTRL_HW_CTRL_MASK 0x1
  90. #define PCIE_AUX_FLR_CTRL_INT_MASK_MASK 0x2
  91. #define MME_ACC_INTR_MASK_WBC_ERR_RESP_MASK GENMASK(1, 0)
  92. #define MME_ACC_INTR_MASK_AP_SRC_POS_INF_MASK BIT(2)
  93. #define MME_ACC_INTR_MASK_AP_SRC_NEG_INF_MASK BIT(3)
  94. #define MME_ACC_INTR_MASK_AP_SRC_NAN_MASK BIT(4)
  95. #define MME_ACC_INTR_MASK_AP_RESULT_POS_INF_MASK BIT(5)
  96. #define MME_ACC_INTR_MASK_AP_RESULT_NEG_INF_MASK BIT(6)
  97. #define SM_CQ_L2H_MASK_VAL 0xFFFFFFFFFC000000ull
  98. #define SM_CQ_L2H_CMPR_VAL 0x1000007FFC000000ull
  99. #define SM_CQ_L2H_LOW_MASK GENMASK(31, 20)
  100. #define SM_CQ_L2H_LOW_SHIFT 20
  101. #define MMU_STATIC_MULTI_PAGE_SIZE_HOP4_PAGE_SIZE_MASK \
  102. REG_FIELD_MASK(DCORE0_HMMU0_MMU_STATIC_MULTI_PAGE_SIZE, HOP4_PAGE_SIZE)
  103. #define STLB_HOP_CONFIGURATION_ONLY_LARGE_PAGE_MASK \
  104. REG_FIELD_MASK(DCORE0_HMMU0_STLB_HOP_CONFIGURATION, ONLY_LARGE_PAGE)
  105. #define AXUSER_HB_SEC_ASID_MASK 0x3FF
  106. #define AXUSER_HB_SEC_MMBP_MASK 0x400
  107. #define MMUBP_ASID_MASK (AXUSER_HB_SEC_ASID_MASK | AXUSER_HB_SEC_MMBP_MASK)
  108. #define ROT_MSS_HALT_WBC_MASK BIT(0)
  109. #define ROT_MSS_HALT_RSB_MASK BIT(1)
  110. #define ROT_MSS_HALT_MRSB_MASK BIT(2)
  111. #define PCIE_DBI_MSIX_ADDRESS_MATCH_LOW_OFF_MSIX_ADDRESS_MATCH_EN_SHIFT 0
  112. #define PCIE_DBI_MSIX_ADDRESS_MATCH_LOW_OFF_MSIX_ADDRESS_MATCH_EN_MASK 0x1
  113. #define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_SIGN_SHIFT 15
  114. #define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_SIGN_MASK 0x8000
  115. #define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_AXI_ERR_INTR_SHIFT 0
  116. #define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_AXI_ERR_INTR_MASK 0x1
  117. #define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_AXI_LBW_ERR_INTR_SHIFT 1
  118. #define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_AXI_LBW_ERR_INTR_MASK 0x2
  119. #define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_BAD_ACCESS_INTR_SHIFT 2
  120. #define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_BAD_ACCESS_INTR_MASK 0x4
  121. #define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_AXI_ERR_INTR_MASK_SHIFT 3
  122. #define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_AXI_ERR_INTR_MASK_MASK 0x8
  123. #define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_AXI_LBW_ERR_INTR_MASK_SHIFT 4
  124. #define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_AXI_LBW_ERR_INTR_MASK_MASK 0x10
  125. #define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_BAD_ACCESS_INTR_MASK_SHIFT 5
  126. #define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_BAD_ACCESS_INTR_MASK_MASK 0x20
  127. #endif /* GAUDI2_MASKS_H_ */