162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci *
362306a36Sopenharmony_ci * Copyright 2020-2022 HabanaLabs, Ltd.
462306a36Sopenharmony_ci * All Rights Reserved.
562306a36Sopenharmony_ci *
662306a36Sopenharmony_ci */
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci#ifndef GAUDI2_MASKS_H_
962306a36Sopenharmony_ci#define GAUDI2_MASKS_H_
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#include "../include/gaudi2/asic_reg/gaudi2_regs.h"
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci/* Useful masks for bits in various registers */
1462306a36Sopenharmony_ci#define QMAN_GLBL_ERR_CFG_MSG_EN_MASK	\
1562306a36Sopenharmony_ci	((0xF << PDMA0_QM_GLBL_ERR_CFG_PQF_ERR_MSG_EN_SHIFT) | \
1662306a36Sopenharmony_ci	(0x1F << PDMA0_QM_GLBL_ERR_CFG_CQF_ERR_MSG_EN_SHIFT) | \
1762306a36Sopenharmony_ci	(0x1F << PDMA0_QM_GLBL_ERR_CFG_CP_ERR_MSG_EN_SHIFT))
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci#define QMAN_GLBL_ERR_CFG_STOP_ON_ERR_EN_MASK	\
2062306a36Sopenharmony_ci	((0xF << PDMA0_QM_GLBL_ERR_CFG_PQF_STOP_ON_ERR_SHIFT) | \
2162306a36Sopenharmony_ci	(0x1F << PDMA0_QM_GLBL_ERR_CFG_CQF_STOP_ON_ERR_SHIFT) | \
2262306a36Sopenharmony_ci	(0x1F << PDMA0_QM_GLBL_ERR_CFG_CP_STOP_ON_ERR_SHIFT) | \
2362306a36Sopenharmony_ci	(0x1 << PDMA0_QM_GLBL_ERR_CFG_ARB_STOP_ON_ERR_SHIFT))
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci#define QMAN_GLBL_ERR_CFG1_MSG_EN_MASK	\
2662306a36Sopenharmony_ci	(0x1 << PDMA0_QM_GLBL_ERR_CFG1_CQF_ERR_MSG_EN_SHIFT)
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci#define QMAN_GLBL_ERR_CFG1_STOP_ON_ERR_EN_MASK	\
2962306a36Sopenharmony_ci	((0x1 << PDMA0_QM_GLBL_ERR_CFG1_CQF_STOP_ON_ERR_SHIFT) | \
3062306a36Sopenharmony_ci	(0x1 << PDMA0_QM_GLBL_ERR_CFG1_ARC_STOP_ON_ERR_SHIFT))
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci#define QM_PQC_LBW_WDATA	\
3362306a36Sopenharmony_ci	((1 << DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_VAL_SHIFT) | \
3462306a36Sopenharmony_ci	(1 << DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_INC_SHIFT))
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci#define QMAN_MAKE_TRUSTED	\
3762306a36Sopenharmony_ci	((0xF << PDMA0_QM_GLBL_PROT_PQF_SHIFT) | \
3862306a36Sopenharmony_ci	(0x1 << PDMA0_QM_GLBL_PROT_ERR_SHIFT) | \
3962306a36Sopenharmony_ci	(0x1 << PDMA0_QM_GLBL_PROT_PQC_SHIFT))
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci#define QMAN_MAKE_TRUSTED_TEST_MODE	\
4262306a36Sopenharmony_ci	((0xF << PDMA0_QM_GLBL_PROT_PQF_SHIFT) | \
4362306a36Sopenharmony_ci	(0xF << PDMA0_QM_GLBL_PROT_CQF_SHIFT) | \
4462306a36Sopenharmony_ci	(0xF << PDMA0_QM_GLBL_PROT_CP_SHIFT) | \
4562306a36Sopenharmony_ci	(0x1 << PDMA0_QM_GLBL_PROT_ERR_SHIFT) | \
4662306a36Sopenharmony_ci	(0x1 << PDMA0_QM_GLBL_PROT_PQC_SHIFT))
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci#define QMAN_ENABLE		\
4962306a36Sopenharmony_ci	((0xF << PDMA0_QM_GLBL_CFG0_PQF_EN_SHIFT) | \
5062306a36Sopenharmony_ci	(0x1F << PDMA0_QM_GLBL_CFG0_CQF_EN_SHIFT) | \
5162306a36Sopenharmony_ci	(0x1F << PDMA0_QM_GLBL_CFG0_CP_EN_SHIFT)  | \
5262306a36Sopenharmony_ci	(0x1 << PDMA0_QM_GLBL_CFG0_ARC_CQF_EN_SHIFT))
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci#define PDMA0_QMAN_ENABLE	\
5562306a36Sopenharmony_ci	((0x3 << PDMA0_QM_GLBL_CFG0_PQF_EN_SHIFT) | \
5662306a36Sopenharmony_ci	(0x1F << PDMA0_QM_GLBL_CFG0_CQF_EN_SHIFT) | \
5762306a36Sopenharmony_ci	(0x1F << PDMA0_QM_GLBL_CFG0_CP_EN_SHIFT)  | \
5862306a36Sopenharmony_ci	(0x1 << PDMA0_QM_GLBL_CFG0_ARC_CQF_EN_SHIFT))
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci#define PDMA1_QMAN_ENABLE	\
6162306a36Sopenharmony_ci	((0x1 << PDMA0_QM_GLBL_CFG0_PQF_EN_SHIFT) | \
6262306a36Sopenharmony_ci	(0x1F << PDMA0_QM_GLBL_CFG0_CQF_EN_SHIFT) | \
6362306a36Sopenharmony_ci	(0x1F << PDMA0_QM_GLBL_CFG0_CP_EN_SHIFT)  | \
6462306a36Sopenharmony_ci	(0x1 << PDMA0_QM_GLBL_CFG0_ARC_CQF_EN_SHIFT))
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ci/* QM_IDLE_MASK is valid for all engines QM idle check */
6762306a36Sopenharmony_ci#define QM_IDLE_MASK	(DCORE0_EDMA0_QM_GLBL_STS0_PQF_IDLE_MASK | \
6862306a36Sopenharmony_ci			DCORE0_EDMA0_QM_GLBL_STS0_CQF_IDLE_MASK | \
6962306a36Sopenharmony_ci			DCORE0_EDMA0_QM_GLBL_STS0_CP_IDLE_MASK)
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ci#define QM_ARC_IDLE_MASK	DCORE0_EDMA0_QM_GLBL_STS1_ARC_CQF_IDLE_MASK
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ci#define MME_ARCH_IDLE_MASK	\
7462306a36Sopenharmony_ci			(DCORE0_MME_CTRL_LO_ARCH_STATUS_SB_IN_EMPTY_MASK | \
7562306a36Sopenharmony_ci			DCORE0_MME_CTRL_LO_ARCH_STATUS_AGU_COUT_SM_IDLE_MASK | \
7662306a36Sopenharmony_ci			DCORE0_MME_CTRL_LO_ARCH_STATUS_WBC_AXI_IDLE_MASK | \
7762306a36Sopenharmony_ci			DCORE0_MME_CTRL_LO_ARCH_STATUS_SB_IN_AXI_IDLE_MASK | \
7862306a36Sopenharmony_ci			DCORE0_MME_CTRL_LO_ARCH_STATUS_QM_IDLE_MASK | \
7962306a36Sopenharmony_ci			DCORE0_MME_CTRL_LO_ARCH_STATUS_QM_RDY_MASK)
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ci#define TPC_IDLE_MASK	(DCORE0_TPC0_CFG_STATUS_SCALAR_PIPE_EMPTY_MASK | \
8262306a36Sopenharmony_ci			DCORE0_TPC0_CFG_STATUS_IQ_EMPTY_MASK | \
8362306a36Sopenharmony_ci			DCORE0_TPC0_CFG_STATUS_SB_EMPTY_MASK | \
8462306a36Sopenharmony_ci			DCORE0_TPC0_CFG_STATUS_QM_IDLE_MASK | \
8562306a36Sopenharmony_ci			DCORE0_TPC0_CFG_STATUS_QM_RDY_MASK)
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ci#define DCORE0_TPC0_QM_CGM_STS_AGENT_IDLE_MASK 0x100
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ci#define DCORE0_TPC0_EML_CFG_DBG_CNT_DBG_EXIT_MASK 0x40
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ci/* CGM_IDLE_MASK is valid for all engines CGM idle check */
9262306a36Sopenharmony_ci#define CGM_IDLE_MASK	DCORE0_TPC0_QM_CGM_STS_AGENT_IDLE_MASK
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ci#define QM_GLBL_CFG1_PQF_STOP		PDMA0_QM_GLBL_CFG1_PQF_STOP_MASK
9562306a36Sopenharmony_ci#define QM_GLBL_CFG1_CQF_STOP		PDMA0_QM_GLBL_CFG1_CQF_STOP_MASK
9662306a36Sopenharmony_ci#define QM_GLBL_CFG1_CP_STOP		PDMA0_QM_GLBL_CFG1_CP_STOP_MASK
9762306a36Sopenharmony_ci#define QM_GLBL_CFG1_PQF_FLUSH		PDMA0_QM_GLBL_CFG1_PQF_FLUSH_MASK
9862306a36Sopenharmony_ci#define QM_GLBL_CFG1_CQF_FLUSH		PDMA0_QM_GLBL_CFG1_CQF_FLUSH_MASK
9962306a36Sopenharmony_ci#define QM_GLBL_CFG1_CP_FLUSH		PDMA0_QM_GLBL_CFG1_CP_FLUSH_MASK
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_ci#define QM_GLBL_CFG2_ARC_CQF_STOP	PDMA0_QM_GLBL_CFG2_ARC_CQF_STOP_MASK
10262306a36Sopenharmony_ci#define QM_GLBL_CFG2_ARC_CQF_FLUSH	PDMA0_QM_GLBL_CFG2_ARC_CQF_FLUSH_MASK
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ci#define QM_ARB_ERR_MSG_EN_CHOISE_OVF_MASK                            0x1
10562306a36Sopenharmony_ci#define QM_ARB_ERR_MSG_EN_CHOISE_WDT_MASK                            0x2
10662306a36Sopenharmony_ci#define QM_ARB_ERR_MSG_EN_AXI_LBW_ERR_MASK                           0x4
10762306a36Sopenharmony_ci
10862306a36Sopenharmony_ci#define QM_ARB_ERR_MSG_EN_MASK		(\
10962306a36Sopenharmony_ci					QM_ARB_ERR_MSG_EN_CHOISE_OVF_MASK |\
11062306a36Sopenharmony_ci					QM_ARB_ERR_MSG_EN_CHOISE_WDT_MASK |\
11162306a36Sopenharmony_ci					QM_ARB_ERR_MSG_EN_AXI_LBW_ERR_MASK)
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ci#define PCIE_AUX_FLR_CTRL_HW_CTRL_MASK		0x1
11462306a36Sopenharmony_ci#define PCIE_AUX_FLR_CTRL_INT_MASK_MASK		0x2
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_ci#define MME_ACC_INTR_MASK_WBC_ERR_RESP_MASK		GENMASK(1, 0)
11762306a36Sopenharmony_ci#define MME_ACC_INTR_MASK_AP_SRC_POS_INF_MASK		BIT(2)
11862306a36Sopenharmony_ci#define MME_ACC_INTR_MASK_AP_SRC_NEG_INF_MASK		BIT(3)
11962306a36Sopenharmony_ci#define MME_ACC_INTR_MASK_AP_SRC_NAN_MASK		BIT(4)
12062306a36Sopenharmony_ci#define MME_ACC_INTR_MASK_AP_RESULT_POS_INF_MASK	BIT(5)
12162306a36Sopenharmony_ci#define MME_ACC_INTR_MASK_AP_RESULT_NEG_INF_MASK	BIT(6)
12262306a36Sopenharmony_ci
12362306a36Sopenharmony_ci#define SM_CQ_L2H_MASK_VAL		0xFFFFFFFFFC000000ull
12462306a36Sopenharmony_ci#define SM_CQ_L2H_CMPR_VAL		0x1000007FFC000000ull
12562306a36Sopenharmony_ci#define SM_CQ_L2H_LOW_MASK		GENMASK(31, 20)
12662306a36Sopenharmony_ci#define SM_CQ_L2H_LOW_SHIFT		20
12762306a36Sopenharmony_ci
12862306a36Sopenharmony_ci#define MMU_STATIC_MULTI_PAGE_SIZE_HOP4_PAGE_SIZE_MASK \
12962306a36Sopenharmony_ci	REG_FIELD_MASK(DCORE0_HMMU0_MMU_STATIC_MULTI_PAGE_SIZE, HOP4_PAGE_SIZE)
13062306a36Sopenharmony_ci#define STLB_HOP_CONFIGURATION_ONLY_LARGE_PAGE_MASK \
13162306a36Sopenharmony_ci	REG_FIELD_MASK(DCORE0_HMMU0_STLB_HOP_CONFIGURATION, ONLY_LARGE_PAGE)
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ci#define AXUSER_HB_SEC_ASID_MASK                0x3FF
13462306a36Sopenharmony_ci#define AXUSER_HB_SEC_MMBP_MASK                0x400
13562306a36Sopenharmony_ci
13662306a36Sopenharmony_ci#define MMUBP_ASID_MASK	(AXUSER_HB_SEC_ASID_MASK | AXUSER_HB_SEC_MMBP_MASK)
13762306a36Sopenharmony_ci
13862306a36Sopenharmony_ci#define ROT_MSS_HALT_WBC_MASK	BIT(0)
13962306a36Sopenharmony_ci#define ROT_MSS_HALT_RSB_MASK	BIT(1)
14062306a36Sopenharmony_ci#define ROT_MSS_HALT_MRSB_MASK	BIT(2)
14162306a36Sopenharmony_ci
14262306a36Sopenharmony_ci#define PCIE_DBI_MSIX_ADDRESS_MATCH_LOW_OFF_MSIX_ADDRESS_MATCH_EN_SHIFT	0
14362306a36Sopenharmony_ci#define PCIE_DBI_MSIX_ADDRESS_MATCH_LOW_OFF_MSIX_ADDRESS_MATCH_EN_MASK	0x1
14462306a36Sopenharmony_ci
14562306a36Sopenharmony_ci#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_SIGN_SHIFT	15
14662306a36Sopenharmony_ci#define DCORE0_SYNC_MNGR_OBJS_SOB_OBJ_SIGN_MASK		0x8000
14762306a36Sopenharmony_ci
14862306a36Sopenharmony_ci#define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_AXI_ERR_INTR_SHIFT		0
14962306a36Sopenharmony_ci#define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_AXI_ERR_INTR_MASK		0x1
15062306a36Sopenharmony_ci#define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_AXI_LBW_ERR_INTR_SHIFT		1
15162306a36Sopenharmony_ci#define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_AXI_LBW_ERR_INTR_MASK		0x2
15262306a36Sopenharmony_ci#define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_BAD_ACCESS_INTR_SHIFT		2
15362306a36Sopenharmony_ci#define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_BAD_ACCESS_INTR_MASK		0x4
15462306a36Sopenharmony_ci#define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_AXI_ERR_INTR_MASK_SHIFT		3
15562306a36Sopenharmony_ci#define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_AXI_ERR_INTR_MASK_MASK		0x8
15662306a36Sopenharmony_ci#define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_AXI_LBW_ERR_INTR_MASK_SHIFT	4
15762306a36Sopenharmony_ci#define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_AXI_LBW_ERR_INTR_MASK_MASK	0x10
15862306a36Sopenharmony_ci#define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_BAD_ACCESS_INTR_MASK_SHIFT	5
15962306a36Sopenharmony_ci#define PCIE_WRAP_PCIE_IC_SEI_INTR_IND_BAD_ACCESS_INTR_MASK_MASK	0x20
16062306a36Sopenharmony_ci
16162306a36Sopenharmony_ci#endif /* GAUDI2_MASKS_H_ */
162