cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

goya_masks.h (10138B)


      1/* SPDX-License-Identifier: GPL-2.0
      2 *
      3 * Copyright 2016-2018 HabanaLabs, Ltd.
      4 * All Rights Reserved.
      5 *
      6 */
      7
      8#ifndef ASIC_REG_GOYA_MASKS_H_
      9#define ASIC_REG_GOYA_MASKS_H_
     10
     11#include "goya_regs.h"
     12
     13/* Useful masks for bits in various registers */
     14#define QMAN_DMA_ENABLE		(\
     15	(1 << DMA_QM_0_GLBL_CFG0_PQF_EN_SHIFT) | \
     16	(1 << DMA_QM_0_GLBL_CFG0_CQF_EN_SHIFT) | \
     17	(1 << DMA_QM_0_GLBL_CFG0_CP_EN_SHIFT) | \
     18	(1 << DMA_QM_0_GLBL_CFG0_DMA_EN_SHIFT))
     19
     20#define QMAN_DMA_FULLY_TRUSTED	(\
     21	(1 << DMA_QM_0_GLBL_PROT_PQF_PROT_SHIFT) | \
     22	(1 << DMA_QM_0_GLBL_PROT_CQF_PROT_SHIFT) | \
     23	(1 << DMA_QM_0_GLBL_PROT_CP_PROT_SHIFT) | \
     24	(1 << DMA_QM_0_GLBL_PROT_DMA_PROT_SHIFT) | \
     25	(1 << DMA_QM_0_GLBL_PROT_PQF_ERR_PROT_SHIFT) | \
     26	(1 << DMA_QM_0_GLBL_PROT_CQF_ERR_PROT_SHIFT) | \
     27	(1 << DMA_QM_0_GLBL_PROT_CP_ERR_PROT_SHIFT) | \
     28	(1 << DMA_QM_0_GLBL_PROT_DMA_ERR_PROT_SHIFT))
     29
     30#define QMAN_DMA_PARTLY_TRUSTED	(\
     31	(1 << DMA_QM_0_GLBL_PROT_PQF_PROT_SHIFT) | \
     32	(1 << DMA_QM_0_GLBL_PROT_CQF_PROT_SHIFT) | \
     33	(1 << DMA_QM_0_GLBL_PROT_CP_PROT_SHIFT) | \
     34	(1 << DMA_QM_0_GLBL_PROT_PQF_ERR_PROT_SHIFT) | \
     35	(1 << DMA_QM_0_GLBL_PROT_CQF_ERR_PROT_SHIFT) | \
     36	(1 << DMA_QM_0_GLBL_PROT_CP_ERR_PROT_SHIFT) | \
     37	(1 << DMA_QM_0_GLBL_PROT_DMA_ERR_PROT_SHIFT))
     38
     39#define QMAN_DMA_STOP		(\
     40	(1 << DMA_QM_0_GLBL_CFG1_PQF_STOP_SHIFT) | \
     41	(1 << DMA_QM_0_GLBL_CFG1_CQF_STOP_SHIFT) | \
     42	(1 << DMA_QM_0_GLBL_CFG1_CP_STOP_SHIFT) | \
     43	(1 << DMA_QM_0_GLBL_CFG1_DMA_STOP_SHIFT))
     44
     45#define QMAN_DMA_IS_STOPPED		(\
     46	(1 << DMA_QM_0_GLBL_STS0_PQF_IS_STOP_SHIFT) | \
     47	(1 << DMA_QM_0_GLBL_STS0_CQF_IS_STOP_SHIFT) | \
     48	(1 << DMA_QM_0_GLBL_STS0_CP_IS_STOP_SHIFT) | \
     49	(1 << DMA_QM_0_GLBL_STS0_DMA_IS_STOP_SHIFT))
     50
     51#define QMAN_DMA_ERR_MSG_EN	(\
     52	(1 << DMA_QM_0_GLBL_ERR_CFG_PQF_ERR_MSG_EN_SHIFT) | \
     53	(1 << DMA_QM_0_GLBL_ERR_CFG_CQF_ERR_MSG_EN_SHIFT) | \
     54	(1 << DMA_QM_0_GLBL_ERR_CFG_CP_ERR_MSG_EN_SHIFT) | \
     55	(1 << DMA_QM_0_GLBL_ERR_CFG_DMA_ERR_MSG_EN_SHIFT) | \
     56	(1 << DMA_QM_0_GLBL_ERR_CFG_PQF_STOP_ON_ERR_SHIFT) | \
     57	(1 << DMA_QM_0_GLBL_ERR_CFG_CQF_STOP_ON_ERR_SHIFT) | \
     58	(1 << DMA_QM_0_GLBL_ERR_CFG_CP_STOP_ON_ERR_SHIFT))
     59
     60#define QMAN_MME_ENABLE		(\
     61	(1 << MME_QM_GLBL_CFG0_PQF_EN_SHIFT) | \
     62	(1 << MME_QM_GLBL_CFG0_CQF_EN_SHIFT) | \
     63	(1 << MME_QM_GLBL_CFG0_CP_EN_SHIFT))
     64
     65#define CMDQ_MME_ENABLE		(\
     66	(1 << MME_CMDQ_GLBL_CFG0_CQF_EN_SHIFT) | \
     67	(1 << MME_CMDQ_GLBL_CFG0_CP_EN_SHIFT))
     68
     69#define QMAN_MME_STOP		(\
     70	(1 << MME_QM_GLBL_CFG1_PQF_STOP_SHIFT) | \
     71	(1 << MME_QM_GLBL_CFG1_CQF_STOP_SHIFT) | \
     72	(1 << MME_QM_GLBL_CFG1_CP_STOP_SHIFT))
     73
     74#define CMDQ_MME_STOP		(\
     75	(1 << MME_CMDQ_GLBL_CFG1_CQF_STOP_SHIFT) | \
     76	(1 << MME_CMDQ_GLBL_CFG1_CP_STOP_SHIFT))
     77
     78#define QMAN_MME_ERR_MSG_EN	(\
     79	(1 << MME_QM_GLBL_ERR_CFG_PQF_ERR_MSG_EN_SHIFT) | \
     80	(1 << MME_QM_GLBL_ERR_CFG_CQF_ERR_MSG_EN_SHIFT) | \
     81	(1 << MME_QM_GLBL_ERR_CFG_CP_ERR_MSG_EN_SHIFT) | \
     82	(1 << MME_QM_GLBL_ERR_CFG_DMA_ERR_MSG_EN_SHIFT) | \
     83	(1 << MME_QM_GLBL_ERR_CFG_PQF_STOP_ON_ERR_SHIFT) | \
     84	(1 << MME_QM_GLBL_ERR_CFG_CQF_STOP_ON_ERR_SHIFT) | \
     85	(1 << MME_QM_GLBL_ERR_CFG_CP_STOP_ON_ERR_SHIFT) | \
     86	(1 << MME_QM_GLBL_ERR_CFG_DMA_STOP_ON_ERR_SHIFT))
     87
     88#define CMDQ_MME_ERR_MSG_EN	(\
     89	(1 << MME_CMDQ_GLBL_ERR_CFG_PQF_ERR_MSG_EN_SHIFT) | \
     90	(1 << MME_CMDQ_GLBL_ERR_CFG_CQF_ERR_MSG_EN_SHIFT) | \
     91	(1 << MME_CMDQ_GLBL_ERR_CFG_CP_ERR_MSG_EN_SHIFT) | \
     92	(1 << MME_CMDQ_GLBL_ERR_CFG_DMA_ERR_MSG_EN_SHIFT) | \
     93	(1 << MME_CMDQ_GLBL_ERR_CFG_PQF_STOP_ON_ERR_SHIFT) | \
     94	(1 << MME_CMDQ_GLBL_ERR_CFG_CQF_STOP_ON_ERR_SHIFT) | \
     95	(1 << MME_CMDQ_GLBL_ERR_CFG_CP_STOP_ON_ERR_SHIFT) | \
     96	(1 << MME_CMDQ_GLBL_ERR_CFG_DMA_STOP_ON_ERR_SHIFT))
     97
     98#define QMAN_MME_ERR_PROT	(\
     99	(1 << MME_QM_GLBL_PROT_PQF_ERR_PROT_SHIFT) | \
    100	(1 << MME_QM_GLBL_PROT_CQF_ERR_PROT_SHIFT) | \
    101	(1 << MME_QM_GLBL_PROT_CP_ERR_PROT_SHIFT) | \
    102	(1 << MME_QM_GLBL_PROT_DMA_ERR_PROT_SHIFT))
    103
    104#define CMDQ_MME_ERR_PROT	(\
    105	(1 << MME_CMDQ_GLBL_PROT_PQF_ERR_PROT_SHIFT) | \
    106	(1 << MME_CMDQ_GLBL_PROT_CQF_ERR_PROT_SHIFT) | \
    107	(1 << MME_CMDQ_GLBL_PROT_CP_ERR_PROT_SHIFT) | \
    108	(1 << MME_CMDQ_GLBL_PROT_DMA_ERR_PROT_SHIFT))
    109
    110#define QMAN_TPC_ENABLE		(\
    111	(1 << TPC0_QM_GLBL_CFG0_PQF_EN_SHIFT) | \
    112	(1 << TPC0_QM_GLBL_CFG0_CQF_EN_SHIFT) | \
    113	(1 << TPC0_QM_GLBL_CFG0_CP_EN_SHIFT))
    114
    115#define CMDQ_TPC_ENABLE		(\
    116	(1 << TPC0_CMDQ_GLBL_CFG0_CQF_EN_SHIFT) | \
    117	(1 << TPC0_CMDQ_GLBL_CFG0_CP_EN_SHIFT))
    118
    119#define QMAN_TPC_STOP		(\
    120	(1 << TPC0_QM_GLBL_CFG1_PQF_STOP_SHIFT) | \
    121	(1 << TPC0_QM_GLBL_CFG1_CQF_STOP_SHIFT) | \
    122	(1 << TPC0_QM_GLBL_CFG1_CP_STOP_SHIFT))
    123
    124#define CMDQ_TPC_STOP		(\
    125	(1 << TPC0_CMDQ_GLBL_CFG1_CQF_STOP_SHIFT) | \
    126	(1 << TPC0_CMDQ_GLBL_CFG1_CP_STOP_SHIFT))
    127
    128#define QMAN_TPC_ERR_MSG_EN	(\
    129	(1 << TPC0_QM_GLBL_ERR_CFG_PQF_ERR_MSG_EN_SHIFT) | \
    130	(1 << TPC0_QM_GLBL_ERR_CFG_CQF_ERR_MSG_EN_SHIFT) | \
    131	(1 << TPC0_QM_GLBL_ERR_CFG_CP_ERR_MSG_EN_SHIFT) | \
    132	(1 << TPC0_QM_GLBL_ERR_CFG_DMA_ERR_MSG_EN_SHIFT) | \
    133	(1 << TPC0_QM_GLBL_ERR_CFG_PQF_STOP_ON_ERR_SHIFT) | \
    134	(1 << TPC0_QM_GLBL_ERR_CFG_CQF_STOP_ON_ERR_SHIFT) | \
    135	(1 << TPC0_QM_GLBL_ERR_CFG_CP_STOP_ON_ERR_SHIFT) | \
    136	(1 << TPC0_QM_GLBL_ERR_CFG_DMA_STOP_ON_ERR_SHIFT))
    137
    138#define CMDQ_TPC_ERR_MSG_EN	(\
    139	(1 << TPC0_CMDQ_GLBL_ERR_CFG_PQF_ERR_MSG_EN_SHIFT) | \
    140	(1 << TPC0_CMDQ_GLBL_ERR_CFG_CQF_ERR_MSG_EN_SHIFT) | \
    141	(1 << TPC0_CMDQ_GLBL_ERR_CFG_CP_ERR_MSG_EN_SHIFT) | \
    142	(1 << TPC0_CMDQ_GLBL_ERR_CFG_DMA_ERR_MSG_EN_SHIFT) | \
    143	(1 << TPC0_CMDQ_GLBL_ERR_CFG_PQF_STOP_ON_ERR_SHIFT) | \
    144	(1 << TPC0_CMDQ_GLBL_ERR_CFG_CQF_STOP_ON_ERR_SHIFT) | \
    145	(1 << TPC0_CMDQ_GLBL_ERR_CFG_CP_STOP_ON_ERR_SHIFT) | \
    146	(1 << TPC0_CMDQ_GLBL_ERR_CFG_DMA_STOP_ON_ERR_SHIFT))
    147
    148#define QMAN_TPC_ERR_PROT	(\
    149	(1 << TPC0_QM_GLBL_PROT_PQF_ERR_PROT_SHIFT) | \
    150	(1 << TPC0_QM_GLBL_PROT_CQF_ERR_PROT_SHIFT) | \
    151	(1 << TPC0_QM_GLBL_PROT_CP_ERR_PROT_SHIFT) | \
    152	(1 << TPC0_QM_GLBL_PROT_DMA_ERR_PROT_SHIFT))
    153
    154#define CMDQ_TPC_ERR_PROT	(\
    155	(1 << TPC0_CMDQ_GLBL_PROT_PQF_ERR_PROT_SHIFT) | \
    156	(1 << TPC0_CMDQ_GLBL_PROT_CQF_ERR_PROT_SHIFT) | \
    157	(1 << TPC0_CMDQ_GLBL_PROT_CP_ERR_PROT_SHIFT) | \
    158	(1 << TPC0_CMDQ_GLBL_PROT_DMA_ERR_PROT_SHIFT))
    159
    160/* RESETS */
    161#define DMA_MME_TPC_RESET	(\
    162			1 << PSOC_GLOBAL_CONF_SW_ALL_RST_CFG_TPC_SHIFT |\
    163			1 << PSOC_GLOBAL_CONF_SW_ALL_RST_CFG_MME_SHIFT |\
    164			1 << PSOC_GLOBAL_CONF_SW_ALL_RST_CFG_DMA_SHIFT)
    165
    166#define RESET_ALL	(\
    167			1 << PSOC_GLOBAL_CONF_SW_ALL_RST_CFG_TPC_SHIFT |\
    168			1 << PSOC_GLOBAL_CONF_SW_ALL_RST_CFG_MME_SHIFT |\
    169			1 << PSOC_GLOBAL_CONF_SW_ALL_RST_CFG_MC_SHIFT |\
    170			1 << PSOC_GLOBAL_CONF_SW_ALL_RST_CFG_CPU_SHIFT |\
    171			1 << PSOC_GLOBAL_CONF_SW_ALL_RST_CFG_PSOC_SHIFT |\
    172			1 << PSOC_GLOBAL_CONF_SW_ALL_RST_CFG_IC_IF_SHIFT |\
    173			PSOC_GLOBAL_CONF_SW_ALL_RST_CFG_SRAM_MASK |\
    174			1 << PSOC_GLOBAL_CONF_SW_ALL_RST_CFG_DMA_SHIFT |\
    175			1 << PSOC_GLOBAL_CONF_SW_ALL_RST_CFG_DMA_IF_SHIFT)
    176
    177#define CA53_RESET		(\
    178			(~\
    179			(1 << PSOC_GLOBAL_CONF_UNIT_RST_N_CPU_SHIFT)\
    180			) & 0x7FFFFF)
    181
    182#define CPU_RESET_ASSERT	(\
    183			1 << CPU_CA53_CFG_ARM_RST_CONTROL_NMBISTRESET_SHIFT)
    184
    185#define CPU_RESET_CORE0_DEASSERT	(\
    186			1 << CPU_CA53_CFG_ARM_RST_CONTROL_NCPUPORESET_SHIFT |\
    187			1 << CPU_CA53_CFG_ARM_RST_CONTROL_NCORERESET_SHIFT |\
    188			1 << CPU_CA53_CFG_ARM_RST_CONTROL_NL2RESET_SHIFT |\
    189			1 << CPU_CA53_CFG_ARM_RST_CONTROL_NMBISTRESET_SHIFT)
    190
    191#define GOYA_IRQ_HBW_ID_MASK			0x1FFF
    192#define GOYA_IRQ_HBW_ID_SHIFT			0
    193#define GOYA_IRQ_HBW_INTERNAL_ID_MASK		0xE000
    194#define GOYA_IRQ_HBW_INTERNAL_ID_SHIFT		13
    195#define GOYA_IRQ_HBW_AGENT_ID_MASK		0x1F0000
    196#define GOYA_IRQ_HBW_AGENT_ID_SHIFT		16
    197#define GOYA_IRQ_HBW_Y_MASK			0xE00000
    198#define GOYA_IRQ_HBW_Y_SHIFT			21
    199#define GOYA_IRQ_HBW_X_MASK			0x7000000
    200#define GOYA_IRQ_HBW_X_SHIFT			24
    201#define GOYA_IRQ_LBW_ID_MASK			0xFF
    202#define GOYA_IRQ_LBW_ID_SHIFT			0
    203#define GOYA_IRQ_LBW_INTERNAL_ID_MASK		0x700
    204#define GOYA_IRQ_LBW_INTERNAL_ID_SHIFT		8
    205#define GOYA_IRQ_LBW_AGENT_ID_MASK		0xF800
    206#define GOYA_IRQ_LBW_AGENT_ID_SHIFT		11
    207#define GOYA_IRQ_LBW_Y_MASK			0x70000
    208#define GOYA_IRQ_LBW_Y_SHIFT			16
    209#define GOYA_IRQ_LBW_X_MASK			0x380000
    210#define GOYA_IRQ_LBW_X_SHIFT			19
    211
    212#define DMA_QM_IDLE_MASK	(DMA_QM_0_GLBL_STS0_PQF_IDLE_MASK | \
    213				DMA_QM_0_GLBL_STS0_CQF_IDLE_MASK | \
    214				DMA_QM_0_GLBL_STS0_CP_IDLE_MASK | \
    215				DMA_QM_0_GLBL_STS0_DMA_IDLE_MASK)
    216
    217#define TPC_QM_IDLE_MASK	(TPC0_QM_GLBL_STS0_PQF_IDLE_MASK | \
    218				TPC0_QM_GLBL_STS0_CQF_IDLE_MASK | \
    219				TPC0_QM_GLBL_STS0_CP_IDLE_MASK)
    220
    221#define TPC_CMDQ_IDLE_MASK	(TPC0_CMDQ_GLBL_STS0_CQF_IDLE_MASK | \
    222				TPC0_CMDQ_GLBL_STS0_CP_IDLE_MASK)
    223
    224#define TPC_CFG_IDLE_MASK	(TPC0_CFG_STATUS_SCALAR_PIPE_EMPTY_MASK | \
    225				TPC0_CFG_STATUS_VECTOR_PIPE_EMPTY_MASK | \
    226				TPC0_CFG_STATUS_IQ_EMPTY_MASK | \
    227				TPC0_CFG_STATUS_NO_INFLIGH_MEM_ACCESSES_MASK)
    228
    229#define MME_QM_IDLE_MASK	(MME_QM_GLBL_STS0_PQF_IDLE_MASK | \
    230				MME_QM_GLBL_STS0_CQF_IDLE_MASK | \
    231				MME_QM_GLBL_STS0_CP_IDLE_MASK)
    232
    233#define MME_CMDQ_IDLE_MASK	(MME_CMDQ_GLBL_STS0_CQF_IDLE_MASK | \
    234				MME_CMDQ_GLBL_STS0_CP_IDLE_MASK)
    235
    236#define MME_ARCH_IDLE_MASK	(MME_ARCH_STATUS_SB_A_EMPTY_MASK | \
    237				MME_ARCH_STATUS_SB_B_EMPTY_MASK | \
    238				MME_ARCH_STATUS_SB_CIN_EMPTY_MASK | \
    239				MME_ARCH_STATUS_SB_COUT_EMPTY_MASK)
    240
    241#define MME_SHADOW_IDLE_MASK	(MME_SHADOW_0_STATUS_A_MASK | \
    242				MME_SHADOW_0_STATUS_B_MASK | \
    243				MME_SHADOW_0_STATUS_CIN_MASK | \
    244				MME_SHADOW_0_STATUS_COUT_MASK | \
    245				MME_SHADOW_0_STATUS_TE_MASK | \
    246				MME_SHADOW_0_STATUS_LD_MASK | \
    247				MME_SHADOW_0_STATUS_ST_MASK)
    248
    249#define TPC1_CFG_TPC_STALL_V_SHIFT TPC0_CFG_TPC_STALL_V_SHIFT
    250#define TPC2_CFG_TPC_STALL_V_SHIFT TPC0_CFG_TPC_STALL_V_SHIFT
    251#define TPC3_CFG_TPC_STALL_V_SHIFT TPC0_CFG_TPC_STALL_V_SHIFT
    252#define TPC4_CFG_TPC_STALL_V_SHIFT TPC0_CFG_TPC_STALL_V_SHIFT
    253#define TPC5_CFG_TPC_STALL_V_SHIFT TPC0_CFG_TPC_STALL_V_SHIFT
    254#define TPC6_CFG_TPC_STALL_V_SHIFT TPC0_CFG_TPC_STALL_V_SHIFT
    255#define TPC7_CFG_TPC_STALL_V_SHIFT TPC0_CFG_TPC_STALL_V_SHIFT
    256
    257#define DMA_QM_1_GLBL_CFG1_DMA_STOP_SHIFT DMA_QM_0_GLBL_CFG1_DMA_STOP_SHIFT
    258#define DMA_QM_2_GLBL_CFG1_DMA_STOP_SHIFT DMA_QM_0_GLBL_CFG1_DMA_STOP_SHIFT
    259#define DMA_QM_3_GLBL_CFG1_DMA_STOP_SHIFT DMA_QM_0_GLBL_CFG1_DMA_STOP_SHIFT
    260#define DMA_QM_4_GLBL_CFG1_DMA_STOP_SHIFT DMA_QM_0_GLBL_CFG1_DMA_STOP_SHIFT
    261
    262#define PSOC_ETR_AXICTL_PROTCTRLBIT1_SHIFT	1
    263#define PSOC_ETR_AXICTL_PROTCTRLBIT0_MASK	0x1
    264#define PSOC_ETR_AXICTL_PROTCTRLBIT1_MASK	0x2
    265#define PSOC_ETR_AXICTL_WRBURSTLEN_MASK		0xF00
    266
    267#endif /* ASIC_REG_GOYA_MASKS_H_ */