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