18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci#ifndef __NITROX_CSR_H 38c2ecf20Sopenharmony_ci#define __NITROX_CSR_H 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ci#include <asm/byteorder.h> 68c2ecf20Sopenharmony_ci#include <linux/types.h> 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci/* EMU clusters */ 98c2ecf20Sopenharmony_ci#define NR_CLUSTERS 4 108c2ecf20Sopenharmony_ci/* Maximum cores per cluster, 118c2ecf20Sopenharmony_ci * varies based on partname 128c2ecf20Sopenharmony_ci */ 138c2ecf20Sopenharmony_ci#define AE_CORES_PER_CLUSTER 20 148c2ecf20Sopenharmony_ci#define SE_CORES_PER_CLUSTER 16 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_ci#define AE_MAX_CORES (AE_CORES_PER_CLUSTER * NR_CLUSTERS) 178c2ecf20Sopenharmony_ci#define SE_MAX_CORES (SE_CORES_PER_CLUSTER * NR_CLUSTERS) 188c2ecf20Sopenharmony_ci#define ZIP_MAX_CORES 5 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ci/* BIST registers */ 218c2ecf20Sopenharmony_ci#define EMU_BIST_STATUSX(_i) (0x1402700 + ((_i) * 0x40000)) 228c2ecf20Sopenharmony_ci#define UCD_BIST_STATUS 0x12C0070 238c2ecf20Sopenharmony_ci#define NPS_CORE_BIST_REG 0x10000E8 248c2ecf20Sopenharmony_ci#define NPS_CORE_NPC_BIST_REG 0x1000128 258c2ecf20Sopenharmony_ci#define NPS_PKT_SLC_BIST_REG 0x1040088 268c2ecf20Sopenharmony_ci#define NPS_PKT_IN_BIST_REG 0x1040100 278c2ecf20Sopenharmony_ci#define POM_BIST_REG 0x11C0100 288c2ecf20Sopenharmony_ci#define BMI_BIST_REG 0x1140080 298c2ecf20Sopenharmony_ci#define EFL_CORE_BIST_REGX(_i) (0x1240100 + ((_i) * 0x400)) 308c2ecf20Sopenharmony_ci#define EFL_TOP_BIST_STAT 0x1241090 318c2ecf20Sopenharmony_ci#define BMO_BIST_REG 0x1180080 328c2ecf20Sopenharmony_ci#define LBC_BIST_STATUS 0x1200020 338c2ecf20Sopenharmony_ci#define PEM_BIST_STATUSX(_i) (0x1080468 | ((_i) << 18)) 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ci/* EMU registers */ 368c2ecf20Sopenharmony_ci#define EMU_SE_ENABLEX(_i) (0x1400000 + ((_i) * 0x40000)) 378c2ecf20Sopenharmony_ci#define EMU_AE_ENABLEX(_i) (0x1400008 + ((_i) * 0x40000)) 388c2ecf20Sopenharmony_ci#define EMU_WD_INT_ENA_W1SX(_i) (0x1402318 + ((_i) * 0x40000)) 398c2ecf20Sopenharmony_ci#define EMU_GE_INT_ENA_W1SX(_i) (0x1402518 + ((_i) * 0x40000)) 408c2ecf20Sopenharmony_ci#define EMU_FUSE_MAPX(_i) (0x1402708 + ((_i) * 0x40000)) 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ci/* UCD registers */ 438c2ecf20Sopenharmony_ci#define UCD_SE_EID_UCODE_BLOCK_NUMX(_i) (0x12C0000 + ((_i) * 0x1000)) 448c2ecf20Sopenharmony_ci#define UCD_AE_EID_UCODE_BLOCK_NUMX(_i) (0x12C0008 + ((_i) * 0x800)) 458c2ecf20Sopenharmony_ci#define UCD_UCODE_LOAD_BLOCK_NUM 0x12C0010 468c2ecf20Sopenharmony_ci#define UCD_UCODE_LOAD_IDX_DATAX(_i) (0x12C0018 + ((_i) * 0x20)) 478c2ecf20Sopenharmony_ci#define UCD_SE_CNTX(_i) (0x12C0040 + ((_i) * 0x1000)) 488c2ecf20Sopenharmony_ci#define UCD_AE_CNTX(_i) (0x12C0048 + ((_i) * 0x800)) 498c2ecf20Sopenharmony_ci 508c2ecf20Sopenharmony_ci/* AQM registers */ 518c2ecf20Sopenharmony_ci#define AQM_CTL 0x1300000 528c2ecf20Sopenharmony_ci#define AQM_INT 0x1300008 538c2ecf20Sopenharmony_ci#define AQM_DBELL_OVF_LO 0x1300010 548c2ecf20Sopenharmony_ci#define AQM_DBELL_OVF_HI 0x1300018 558c2ecf20Sopenharmony_ci#define AQM_DBELL_OVF_LO_W1S 0x1300020 568c2ecf20Sopenharmony_ci#define AQM_DBELL_OVF_LO_ENA_W1C 0x1300028 578c2ecf20Sopenharmony_ci#define AQM_DBELL_OVF_LO_ENA_W1S 0x1300030 588c2ecf20Sopenharmony_ci#define AQM_DBELL_OVF_HI_W1S 0x1300038 598c2ecf20Sopenharmony_ci#define AQM_DBELL_OVF_HI_ENA_W1C 0x1300040 608c2ecf20Sopenharmony_ci#define AQM_DBELL_OVF_HI_ENA_W1S 0x1300048 618c2ecf20Sopenharmony_ci#define AQM_DMA_RD_ERR_LO 0x1300050 628c2ecf20Sopenharmony_ci#define AQM_DMA_RD_ERR_HI 0x1300058 638c2ecf20Sopenharmony_ci#define AQM_DMA_RD_ERR_LO_W1S 0x1300060 648c2ecf20Sopenharmony_ci#define AQM_DMA_RD_ERR_LO_ENA_W1C 0x1300068 658c2ecf20Sopenharmony_ci#define AQM_DMA_RD_ERR_LO_ENA_W1S 0x1300070 668c2ecf20Sopenharmony_ci#define AQM_DMA_RD_ERR_HI_W1S 0x1300078 678c2ecf20Sopenharmony_ci#define AQM_DMA_RD_ERR_HI_ENA_W1C 0x1300080 688c2ecf20Sopenharmony_ci#define AQM_DMA_RD_ERR_HI_ENA_W1S 0x1300088 698c2ecf20Sopenharmony_ci#define AQM_EXEC_NA_LO 0x1300090 708c2ecf20Sopenharmony_ci#define AQM_EXEC_NA_HI 0x1300098 718c2ecf20Sopenharmony_ci#define AQM_EXEC_NA_LO_W1S 0x13000A0 728c2ecf20Sopenharmony_ci#define AQM_EXEC_NA_LO_ENA_W1C 0x13000A8 738c2ecf20Sopenharmony_ci#define AQM_EXEC_NA_LO_ENA_W1S 0x13000B0 748c2ecf20Sopenharmony_ci#define AQM_EXEC_NA_HI_W1S 0x13000B8 758c2ecf20Sopenharmony_ci#define AQM_EXEC_NA_HI_ENA_W1C 0x13000C0 768c2ecf20Sopenharmony_ci#define AQM_EXEC_NA_HI_ENA_W1S 0x13000C8 778c2ecf20Sopenharmony_ci#define AQM_EXEC_ERR_LO 0x13000D0 788c2ecf20Sopenharmony_ci#define AQM_EXEC_ERR_HI 0x13000D8 798c2ecf20Sopenharmony_ci#define AQM_EXEC_ERR_LO_W1S 0x13000E0 808c2ecf20Sopenharmony_ci#define AQM_EXEC_ERR_LO_ENA_W1C 0x13000E8 818c2ecf20Sopenharmony_ci#define AQM_EXEC_ERR_LO_ENA_W1S 0x13000F0 828c2ecf20Sopenharmony_ci#define AQM_EXEC_ERR_HI_W1S 0x13000F8 838c2ecf20Sopenharmony_ci#define AQM_EXEC_ERR_HI_ENA_W1C 0x1300100 848c2ecf20Sopenharmony_ci#define AQM_EXEC_ERR_HI_ENA_W1S 0x1300108 858c2ecf20Sopenharmony_ci#define AQM_ECC_INT 0x1300110 868c2ecf20Sopenharmony_ci#define AQM_ECC_INT_W1S 0x1300118 878c2ecf20Sopenharmony_ci#define AQM_ECC_INT_ENA_W1C 0x1300120 888c2ecf20Sopenharmony_ci#define AQM_ECC_INT_ENA_W1S 0x1300128 898c2ecf20Sopenharmony_ci#define AQM_ECC_CTL 0x1300130 908c2ecf20Sopenharmony_ci#define AQM_BIST_STATUS 0x1300138 918c2ecf20Sopenharmony_ci#define AQM_CMD_INF_THRX(x) (0x1300400 + ((x) * 0x8)) 928c2ecf20Sopenharmony_ci#define AQM_CMD_INFX(x) (0x1300800 + ((x) * 0x8)) 938c2ecf20Sopenharmony_ci#define AQM_GRP_EXECMSK_LOX(x) (0x1300C00 + ((x) * 0x10)) 948c2ecf20Sopenharmony_ci#define AQM_GRP_EXECMSK_HIX(x) (0x1300C08 + ((x) * 0x10)) 958c2ecf20Sopenharmony_ci#define AQM_ACTIVITY_STAT_LO 0x1300C80 968c2ecf20Sopenharmony_ci#define AQM_ACTIVITY_STAT_HI 0x1300C88 978c2ecf20Sopenharmony_ci#define AQM_Q_CMD_PROCX(x) (0x1301000 + ((x) * 0x8)) 988c2ecf20Sopenharmony_ci#define AQM_PERF_CTL_LO 0x1301400 998c2ecf20Sopenharmony_ci#define AQM_PERF_CTL_HI 0x1301408 1008c2ecf20Sopenharmony_ci#define AQM_PERF_CNT 0x1301410 1018c2ecf20Sopenharmony_ci 1028c2ecf20Sopenharmony_ci#define AQMQ_DRBLX(x) (0x20000 + ((x) * 0x40000)) 1038c2ecf20Sopenharmony_ci#define AQMQ_QSZX(x) (0x20008 + ((x) * 0x40000)) 1048c2ecf20Sopenharmony_ci#define AQMQ_BADRX(x) (0x20010 + ((x) * 0x40000)) 1058c2ecf20Sopenharmony_ci#define AQMQ_NXT_CMDX(x) (0x20018 + ((x) * 0x40000)) 1068c2ecf20Sopenharmony_ci#define AQMQ_CMD_CNTX(x) (0x20020 + ((x) * 0x40000)) 1078c2ecf20Sopenharmony_ci#define AQMQ_CMP_THRX(x) (0x20028 + ((x) * 0x40000)) 1088c2ecf20Sopenharmony_ci#define AQMQ_CMP_CNTX(x) (0x20030 + ((x) * 0x40000)) 1098c2ecf20Sopenharmony_ci#define AQMQ_TIM_LDX(x) (0x20038 + ((x) * 0x40000)) 1108c2ecf20Sopenharmony_ci#define AQMQ_TIMERX(x) (0x20040 + ((x) * 0x40000)) 1118c2ecf20Sopenharmony_ci#define AQMQ_ENX(x) (0x20048 + ((x) * 0x40000)) 1128c2ecf20Sopenharmony_ci#define AQMQ_ACTIVITY_STATX(x) (0x20050 + ((x) * 0x40000)) 1138c2ecf20Sopenharmony_ci#define AQM_VF_CMP_STATX(x) (0x28000 + ((x) * 0x40000)) 1148c2ecf20Sopenharmony_ci 1158c2ecf20Sopenharmony_ci/* NPS core registers */ 1168c2ecf20Sopenharmony_ci#define NPS_CORE_GBL_VFCFG 0x1000000 1178c2ecf20Sopenharmony_ci#define NPS_CORE_CONTROL 0x1000008 1188c2ecf20Sopenharmony_ci#define NPS_CORE_INT_ACTIVE 0x1000080 1198c2ecf20Sopenharmony_ci#define NPS_CORE_INT 0x10000A0 1208c2ecf20Sopenharmony_ci#define NPS_CORE_INT_ENA_W1S 0x10000B8 1218c2ecf20Sopenharmony_ci#define NPS_STATS_PKT_DMA_RD_CNT 0x1000180 1228c2ecf20Sopenharmony_ci#define NPS_STATS_PKT_DMA_WR_CNT 0x1000190 1238c2ecf20Sopenharmony_ci 1248c2ecf20Sopenharmony_ci/* NPS packet registers */ 1258c2ecf20Sopenharmony_ci#define NPS_PKT_INT 0x1040018 1268c2ecf20Sopenharmony_ci#define NPS_PKT_MBOX_INT_LO 0x1040020 1278c2ecf20Sopenharmony_ci#define NPS_PKT_MBOX_INT_LO_ENA_W1C 0x1040030 1288c2ecf20Sopenharmony_ci#define NPS_PKT_MBOX_INT_LO_ENA_W1S 0x1040038 1298c2ecf20Sopenharmony_ci#define NPS_PKT_MBOX_INT_HI 0x1040040 1308c2ecf20Sopenharmony_ci#define NPS_PKT_MBOX_INT_HI_ENA_W1C 0x1040050 1318c2ecf20Sopenharmony_ci#define NPS_PKT_MBOX_INT_HI_ENA_W1S 0x1040058 1328c2ecf20Sopenharmony_ci#define NPS_PKT_IN_RERR_HI 0x1040108 1338c2ecf20Sopenharmony_ci#define NPS_PKT_IN_RERR_HI_ENA_W1S 0x1040120 1348c2ecf20Sopenharmony_ci#define NPS_PKT_IN_RERR_LO 0x1040128 1358c2ecf20Sopenharmony_ci#define NPS_PKT_IN_RERR_LO_ENA_W1S 0x1040140 1368c2ecf20Sopenharmony_ci#define NPS_PKT_IN_ERR_TYPE 0x1040148 1378c2ecf20Sopenharmony_ci#define NPS_PKT_IN_ERR_TYPE_ENA_W1S 0x1040160 1388c2ecf20Sopenharmony_ci#define NPS_PKT_IN_INSTR_CTLX(_i) (0x10060 + ((_i) * 0x40000)) 1398c2ecf20Sopenharmony_ci#define NPS_PKT_IN_INSTR_BADDRX(_i) (0x10068 + ((_i) * 0x40000)) 1408c2ecf20Sopenharmony_ci#define NPS_PKT_IN_INSTR_RSIZEX(_i) (0x10070 + ((_i) * 0x40000)) 1418c2ecf20Sopenharmony_ci#define NPS_PKT_IN_DONE_CNTSX(_i) (0x10080 + ((_i) * 0x40000)) 1428c2ecf20Sopenharmony_ci#define NPS_PKT_IN_INSTR_BAOFF_DBELLX(_i) (0x10078 + ((_i) * 0x40000)) 1438c2ecf20Sopenharmony_ci#define NPS_PKT_IN_INT_LEVELSX(_i) (0x10088 + ((_i) * 0x40000)) 1448c2ecf20Sopenharmony_ci 1458c2ecf20Sopenharmony_ci#define NPS_PKT_SLC_RERR_HI 0x1040208 1468c2ecf20Sopenharmony_ci#define NPS_PKT_SLC_RERR_HI_ENA_W1S 0x1040220 1478c2ecf20Sopenharmony_ci#define NPS_PKT_SLC_RERR_LO 0x1040228 1488c2ecf20Sopenharmony_ci#define NPS_PKT_SLC_RERR_LO_ENA_W1S 0x1040240 1498c2ecf20Sopenharmony_ci#define NPS_PKT_SLC_ERR_TYPE 0x1040248 1508c2ecf20Sopenharmony_ci#define NPS_PKT_SLC_ERR_TYPE_ENA_W1S 0x1040260 1518c2ecf20Sopenharmony_ci/* Mailbox PF->VF PF Accessible Data registers */ 1528c2ecf20Sopenharmony_ci#define NPS_PKT_MBOX_PF_VF_PFDATAX(_i) (0x1040800 + ((_i) * 0x8)) 1538c2ecf20Sopenharmony_ci#define NPS_PKT_MBOX_VF_PF_PFDATAX(_i) (0x1040C00 + ((_i) * 0x8)) 1548c2ecf20Sopenharmony_ci 1558c2ecf20Sopenharmony_ci#define NPS_PKT_SLC_CTLX(_i) (0x10000 + ((_i) * 0x40000)) 1568c2ecf20Sopenharmony_ci#define NPS_PKT_SLC_CNTSX(_i) (0x10008 + ((_i) * 0x40000)) 1578c2ecf20Sopenharmony_ci#define NPS_PKT_SLC_INT_LEVELSX(_i) (0x10010 + ((_i) * 0x40000)) 1588c2ecf20Sopenharmony_ci 1598c2ecf20Sopenharmony_ci/* POM registers */ 1608c2ecf20Sopenharmony_ci#define POM_INT_ENA_W1S 0x11C0018 1618c2ecf20Sopenharmony_ci#define POM_GRP_EXECMASKX(_i) (0x11C1100 | ((_i) * 8)) 1628c2ecf20Sopenharmony_ci#define POM_INT 0x11C0000 1638c2ecf20Sopenharmony_ci#define POM_PERF_CTL 0x11CC400 1648c2ecf20Sopenharmony_ci 1658c2ecf20Sopenharmony_ci/* BMI registers */ 1668c2ecf20Sopenharmony_ci#define BMI_INT 0x1140000 1678c2ecf20Sopenharmony_ci#define BMI_CTL 0x1140020 1688c2ecf20Sopenharmony_ci#define BMI_INT_ENA_W1S 0x1140018 1698c2ecf20Sopenharmony_ci#define BMI_NPS_PKT_CNT 0x1140070 1708c2ecf20Sopenharmony_ci 1718c2ecf20Sopenharmony_ci/* EFL registers */ 1728c2ecf20Sopenharmony_ci#define EFL_CORE_INT_ENA_W1SX(_i) (0x1240018 + ((_i) * 0x400)) 1738c2ecf20Sopenharmony_ci#define EFL_CORE_VF_ERR_INT0X(_i) (0x1240050 + ((_i) * 0x400)) 1748c2ecf20Sopenharmony_ci#define EFL_CORE_VF_ERR_INT0_ENA_W1SX(_i) (0x1240068 + ((_i) * 0x400)) 1758c2ecf20Sopenharmony_ci#define EFL_CORE_VF_ERR_INT1X(_i) (0x1240070 + ((_i) * 0x400)) 1768c2ecf20Sopenharmony_ci#define EFL_CORE_VF_ERR_INT1_ENA_W1SX(_i) (0x1240088 + ((_i) * 0x400)) 1778c2ecf20Sopenharmony_ci#define EFL_CORE_SE_ERR_INTX(_i) (0x12400A0 + ((_i) * 0x400)) 1788c2ecf20Sopenharmony_ci#define EFL_RNM_CTL_STATUS 0x1241800 1798c2ecf20Sopenharmony_ci#define EFL_CORE_INTX(_i) (0x1240000 + ((_i) * 0x400)) 1808c2ecf20Sopenharmony_ci 1818c2ecf20Sopenharmony_ci/* BMO registers */ 1828c2ecf20Sopenharmony_ci#define BMO_CTL2 0x1180028 1838c2ecf20Sopenharmony_ci#define BMO_NPS_SLC_PKT_CNT 0x1180078 1848c2ecf20Sopenharmony_ci 1858c2ecf20Sopenharmony_ci/* LBC registers */ 1868c2ecf20Sopenharmony_ci#define LBC_INT 0x1200000 1878c2ecf20Sopenharmony_ci#define LBC_INVAL_CTL 0x1201010 1888c2ecf20Sopenharmony_ci#define LBC_PLM_VF1_64_INT 0x1202008 1898c2ecf20Sopenharmony_ci#define LBC_INVAL_STATUS 0x1202010 1908c2ecf20Sopenharmony_ci#define LBC_INT_ENA_W1S 0x1203000 1918c2ecf20Sopenharmony_ci#define LBC_PLM_VF1_64_INT_ENA_W1S 0x1205008 1928c2ecf20Sopenharmony_ci#define LBC_PLM_VF65_128_INT 0x1206008 1938c2ecf20Sopenharmony_ci#define LBC_ELM_VF1_64_INT 0x1208000 1948c2ecf20Sopenharmony_ci#define LBC_PLM_VF65_128_INT_ENA_W1S 0x1209008 1958c2ecf20Sopenharmony_ci#define LBC_ELM_VF1_64_INT_ENA_W1S 0x120B000 1968c2ecf20Sopenharmony_ci#define LBC_ELM_VF65_128_INT 0x120C000 1978c2ecf20Sopenharmony_ci#define LBC_ELM_VF65_128_INT_ENA_W1S 0x120F000 1988c2ecf20Sopenharmony_ci 1998c2ecf20Sopenharmony_ci#define RST_BOOT 0x10C1600 2008c2ecf20Sopenharmony_ci#define FUS_DAT1 0x10C1408 2018c2ecf20Sopenharmony_ci 2028c2ecf20Sopenharmony_ci/* PEM registers */ 2038c2ecf20Sopenharmony_ci#define PEM0_INT 0x1080428 2048c2ecf20Sopenharmony_ci 2058c2ecf20Sopenharmony_ci/** 2068c2ecf20Sopenharmony_ci * struct ucd_core_eid_ucode_block_num - Core Eid to Ucode Blk Mapping Registers 2078c2ecf20Sopenharmony_ci * @ucode_len: Ucode length identifier 32KB or 64KB 2088c2ecf20Sopenharmony_ci * @ucode_blk: Ucode Block Number 2098c2ecf20Sopenharmony_ci */ 2108c2ecf20Sopenharmony_ciunion ucd_core_eid_ucode_block_num { 2118c2ecf20Sopenharmony_ci u64 value; 2128c2ecf20Sopenharmony_ci struct { 2138c2ecf20Sopenharmony_ci#if (defined(__BIG_ENDIAN_BITFIELD)) 2148c2ecf20Sopenharmony_ci u64 raz_4_63 : 60; 2158c2ecf20Sopenharmony_ci u64 ucode_len : 1; 2168c2ecf20Sopenharmony_ci u64 ucode_blk : 3; 2178c2ecf20Sopenharmony_ci#else 2188c2ecf20Sopenharmony_ci u64 ucode_blk : 3; 2198c2ecf20Sopenharmony_ci u64 ucode_len : 1; 2208c2ecf20Sopenharmony_ci u64 raz_4_63 : 60; 2218c2ecf20Sopenharmony_ci#endif 2228c2ecf20Sopenharmony_ci }; 2238c2ecf20Sopenharmony_ci}; 2248c2ecf20Sopenharmony_ci 2258c2ecf20Sopenharmony_ci/** 2268c2ecf20Sopenharmony_ci * struct aqm_grp_execmsk_lo - Available AE engines for the group 2278c2ecf20Sopenharmony_ci * @exec_0_to_39: AE engines 0 to 39 status 2288c2ecf20Sopenharmony_ci */ 2298c2ecf20Sopenharmony_ciunion aqm_grp_execmsk_lo { 2308c2ecf20Sopenharmony_ci u64 value; 2318c2ecf20Sopenharmony_ci struct { 2328c2ecf20Sopenharmony_ci#if (defined(__BIG_ENDIAN_BITFIELD)) 2338c2ecf20Sopenharmony_ci u64 raz_40_63 : 24; 2348c2ecf20Sopenharmony_ci u64 exec_0_to_39 : 40; 2358c2ecf20Sopenharmony_ci#else 2368c2ecf20Sopenharmony_ci u64 exec_0_to_39 : 40; 2378c2ecf20Sopenharmony_ci u64 raz_40_63 : 24; 2388c2ecf20Sopenharmony_ci#endif 2398c2ecf20Sopenharmony_ci }; 2408c2ecf20Sopenharmony_ci}; 2418c2ecf20Sopenharmony_ci 2428c2ecf20Sopenharmony_ci/** 2438c2ecf20Sopenharmony_ci * struct aqm_grp_execmsk_hi - Available AE engines for the group 2448c2ecf20Sopenharmony_ci * @exec_40_to_79: AE engines 40 to 79 status 2458c2ecf20Sopenharmony_ci */ 2468c2ecf20Sopenharmony_ciunion aqm_grp_execmsk_hi { 2478c2ecf20Sopenharmony_ci u64 value; 2488c2ecf20Sopenharmony_ci struct { 2498c2ecf20Sopenharmony_ci#if (defined(__BIG_ENDIAN_BITFIELD)) 2508c2ecf20Sopenharmony_ci u64 raz_40_63 : 24; 2518c2ecf20Sopenharmony_ci u64 exec_40_to_79 : 40; 2528c2ecf20Sopenharmony_ci#else 2538c2ecf20Sopenharmony_ci u64 exec_40_to_79 : 40; 2548c2ecf20Sopenharmony_ci u64 raz_40_63 : 24; 2558c2ecf20Sopenharmony_ci#endif 2568c2ecf20Sopenharmony_ci }; 2578c2ecf20Sopenharmony_ci}; 2588c2ecf20Sopenharmony_ci 2598c2ecf20Sopenharmony_ci/** 2608c2ecf20Sopenharmony_ci * struct aqmq_drbl - AQM Queue Doorbell Counter Registers 2618c2ecf20Sopenharmony_ci * @dbell_count: Doorbell Counter 2628c2ecf20Sopenharmony_ci */ 2638c2ecf20Sopenharmony_ciunion aqmq_drbl { 2648c2ecf20Sopenharmony_ci u64 value; 2658c2ecf20Sopenharmony_ci struct { 2668c2ecf20Sopenharmony_ci#if (defined(__BIG_ENDIAN_BITFIELD)) 2678c2ecf20Sopenharmony_ci u64 raz_32_63 : 32; 2688c2ecf20Sopenharmony_ci u64 dbell_count : 32; 2698c2ecf20Sopenharmony_ci#else 2708c2ecf20Sopenharmony_ci u64 dbell_count : 32; 2718c2ecf20Sopenharmony_ci u64 raz_32_63 : 32; 2728c2ecf20Sopenharmony_ci#endif 2738c2ecf20Sopenharmony_ci }; 2748c2ecf20Sopenharmony_ci}; 2758c2ecf20Sopenharmony_ci 2768c2ecf20Sopenharmony_ci/** 2778c2ecf20Sopenharmony_ci * struct aqmq_qsz - AQM Queue Host Queue Size Registers 2788c2ecf20Sopenharmony_ci * @host_queue_size: Size, in numbers of 'aqmq_command_s' command 2798c2ecf20Sopenharmony_ci * of the Host Ring. 2808c2ecf20Sopenharmony_ci */ 2818c2ecf20Sopenharmony_ciunion aqmq_qsz { 2828c2ecf20Sopenharmony_ci u64 value; 2838c2ecf20Sopenharmony_ci struct { 2848c2ecf20Sopenharmony_ci#if (defined(__BIG_ENDIAN_BITFIELD)) 2858c2ecf20Sopenharmony_ci u64 raz_32_63 : 32; 2868c2ecf20Sopenharmony_ci u64 host_queue_size : 32; 2878c2ecf20Sopenharmony_ci#else 2888c2ecf20Sopenharmony_ci u64 host_queue_size : 32; 2898c2ecf20Sopenharmony_ci u64 raz_32_63 : 32; 2908c2ecf20Sopenharmony_ci#endif 2918c2ecf20Sopenharmony_ci }; 2928c2ecf20Sopenharmony_ci}; 2938c2ecf20Sopenharmony_ci 2948c2ecf20Sopenharmony_ci/** 2958c2ecf20Sopenharmony_ci * struct aqmq_cmp_thr - AQM Queue Commands Completed Threshold Registers 2968c2ecf20Sopenharmony_ci * @commands_completed_threshold: Count of 'aqmq_command_s' commands executed 2978c2ecf20Sopenharmony_ci * by AE engines for which completion interrupt is asserted. 2988c2ecf20Sopenharmony_ci */ 2998c2ecf20Sopenharmony_ciunion aqmq_cmp_thr { 3008c2ecf20Sopenharmony_ci u64 value; 3018c2ecf20Sopenharmony_ci struct { 3028c2ecf20Sopenharmony_ci#if (defined(__BIG_ENDIAN_BITFIELD)) 3038c2ecf20Sopenharmony_ci u64 raz_32_63 : 32; 3048c2ecf20Sopenharmony_ci u64 commands_completed_threshold : 32; 3058c2ecf20Sopenharmony_ci#else 3068c2ecf20Sopenharmony_ci u64 commands_completed_threshold : 32; 3078c2ecf20Sopenharmony_ci u64 raz_32_63 : 32; 3088c2ecf20Sopenharmony_ci#endif 3098c2ecf20Sopenharmony_ci }; 3108c2ecf20Sopenharmony_ci}; 3118c2ecf20Sopenharmony_ci 3128c2ecf20Sopenharmony_ci/** 3138c2ecf20Sopenharmony_ci * struct aqmq_cmp_cnt - AQM Queue Commands Completed Count Registers 3148c2ecf20Sopenharmony_ci * @resend: Bit to request completion interrupt Resend. 3158c2ecf20Sopenharmony_ci * @completion_status: Command completion status of the ring. 3168c2ecf20Sopenharmony_ci * @commands_completed_count: Count of 'aqmq_command_s' commands executed by 3178c2ecf20Sopenharmony_ci * AE engines. 3188c2ecf20Sopenharmony_ci */ 3198c2ecf20Sopenharmony_ciunion aqmq_cmp_cnt { 3208c2ecf20Sopenharmony_ci u64 value; 3218c2ecf20Sopenharmony_ci struct { 3228c2ecf20Sopenharmony_ci#if (defined(__BIG_ENDIAN_BITFIELD)) 3238c2ecf20Sopenharmony_ci u64 raz_34_63 : 30; 3248c2ecf20Sopenharmony_ci u64 resend : 1; 3258c2ecf20Sopenharmony_ci u64 completion_status : 1; 3268c2ecf20Sopenharmony_ci u64 commands_completed_count : 32; 3278c2ecf20Sopenharmony_ci#else 3288c2ecf20Sopenharmony_ci u64 commands_completed_count : 32; 3298c2ecf20Sopenharmony_ci u64 completion_status : 1; 3308c2ecf20Sopenharmony_ci u64 resend : 1; 3318c2ecf20Sopenharmony_ci u64 raz_34_63 : 30; 3328c2ecf20Sopenharmony_ci#endif 3338c2ecf20Sopenharmony_ci }; 3348c2ecf20Sopenharmony_ci}; 3358c2ecf20Sopenharmony_ci 3368c2ecf20Sopenharmony_ci/** 3378c2ecf20Sopenharmony_ci * struct aqmq_en - AQM Queue Enable Registers 3388c2ecf20Sopenharmony_ci * @queue_status: 1 = AQMQ is enabled, 0 = AQMQ is disabled 3398c2ecf20Sopenharmony_ci */ 3408c2ecf20Sopenharmony_ciunion aqmq_en { 3418c2ecf20Sopenharmony_ci u64 value; 3428c2ecf20Sopenharmony_ci struct { 3438c2ecf20Sopenharmony_ci#if (defined(__BIG_ENDIAN_BITFIELD)) 3448c2ecf20Sopenharmony_ci u64 raz_1_63 : 63; 3458c2ecf20Sopenharmony_ci u64 queue_enable : 1; 3468c2ecf20Sopenharmony_ci#else 3478c2ecf20Sopenharmony_ci u64 queue_enable : 1; 3488c2ecf20Sopenharmony_ci u64 raz_1_63 : 63; 3498c2ecf20Sopenharmony_ci#endif 3508c2ecf20Sopenharmony_ci }; 3518c2ecf20Sopenharmony_ci}; 3528c2ecf20Sopenharmony_ci 3538c2ecf20Sopenharmony_ci/** 3548c2ecf20Sopenharmony_ci * struct aqmq_activity_stat - AQM Queue Activity Status Registers 3558c2ecf20Sopenharmony_ci * @queue_active: 1 = AQMQ is active, 0 = AQMQ is quiescent 3568c2ecf20Sopenharmony_ci */ 3578c2ecf20Sopenharmony_ciunion aqmq_activity_stat { 3588c2ecf20Sopenharmony_ci u64 value; 3598c2ecf20Sopenharmony_ci struct { 3608c2ecf20Sopenharmony_ci#if (defined(__BIG_ENDIAN_BITFIELD)) 3618c2ecf20Sopenharmony_ci u64 raz_1_63 : 63; 3628c2ecf20Sopenharmony_ci u64 queue_active : 1; 3638c2ecf20Sopenharmony_ci#else 3648c2ecf20Sopenharmony_ci u64 queue_active : 1; 3658c2ecf20Sopenharmony_ci u64 raz_1_63 : 63; 3668c2ecf20Sopenharmony_ci#endif 3678c2ecf20Sopenharmony_ci }; 3688c2ecf20Sopenharmony_ci}; 3698c2ecf20Sopenharmony_ci 3708c2ecf20Sopenharmony_ci/** 3718c2ecf20Sopenharmony_ci * struct emu_fuse_map - EMU Fuse Map Registers 3728c2ecf20Sopenharmony_ci * @ae_fuse: Fuse settings for AE 19..0 3738c2ecf20Sopenharmony_ci * @se_fuse: Fuse settings for SE 15..0 3748c2ecf20Sopenharmony_ci * 3758c2ecf20Sopenharmony_ci * A set bit indicates the unit is fuse disabled. 3768c2ecf20Sopenharmony_ci */ 3778c2ecf20Sopenharmony_ciunion emu_fuse_map { 3788c2ecf20Sopenharmony_ci u64 value; 3798c2ecf20Sopenharmony_ci struct { 3808c2ecf20Sopenharmony_ci#if (defined(__BIG_ENDIAN_BITFIELD)) 3818c2ecf20Sopenharmony_ci u64 valid : 1; 3828c2ecf20Sopenharmony_ci u64 raz_52_62 : 11; 3838c2ecf20Sopenharmony_ci u64 ae_fuse : 20; 3848c2ecf20Sopenharmony_ci u64 raz_16_31 : 16; 3858c2ecf20Sopenharmony_ci u64 se_fuse : 16; 3868c2ecf20Sopenharmony_ci#else 3878c2ecf20Sopenharmony_ci u64 se_fuse : 16; 3888c2ecf20Sopenharmony_ci u64 raz_16_31 : 16; 3898c2ecf20Sopenharmony_ci u64 ae_fuse : 20; 3908c2ecf20Sopenharmony_ci u64 raz_52_62 : 11; 3918c2ecf20Sopenharmony_ci u64 valid : 1; 3928c2ecf20Sopenharmony_ci#endif 3938c2ecf20Sopenharmony_ci } s; 3948c2ecf20Sopenharmony_ci}; 3958c2ecf20Sopenharmony_ci 3968c2ecf20Sopenharmony_ci/** 3978c2ecf20Sopenharmony_ci * struct emu_se_enable - Symmetric Engine Enable Registers 3988c2ecf20Sopenharmony_ci * @enable: Individual enables for each of the clusters 3998c2ecf20Sopenharmony_ci * 16 symmetric engines. 4008c2ecf20Sopenharmony_ci */ 4018c2ecf20Sopenharmony_ciunion emu_se_enable { 4028c2ecf20Sopenharmony_ci u64 value; 4038c2ecf20Sopenharmony_ci struct { 4048c2ecf20Sopenharmony_ci#if (defined(__BIG_ENDIAN_BITFIELD)) 4058c2ecf20Sopenharmony_ci u64 raz : 48; 4068c2ecf20Sopenharmony_ci u64 enable : 16; 4078c2ecf20Sopenharmony_ci#else 4088c2ecf20Sopenharmony_ci u64 enable : 16; 4098c2ecf20Sopenharmony_ci u64 raz : 48; 4108c2ecf20Sopenharmony_ci#endif 4118c2ecf20Sopenharmony_ci } s; 4128c2ecf20Sopenharmony_ci}; 4138c2ecf20Sopenharmony_ci 4148c2ecf20Sopenharmony_ci/** 4158c2ecf20Sopenharmony_ci * struct emu_ae_enable - EMU Asymmetric engines. 4168c2ecf20Sopenharmony_ci * @enable: Individual enables for each of the cluster's 4178c2ecf20Sopenharmony_ci * 20 Asymmetric Engines. 4188c2ecf20Sopenharmony_ci */ 4198c2ecf20Sopenharmony_ciunion emu_ae_enable { 4208c2ecf20Sopenharmony_ci u64 value; 4218c2ecf20Sopenharmony_ci struct { 4228c2ecf20Sopenharmony_ci#if (defined(__BIG_ENDIAN_BITFIELD)) 4238c2ecf20Sopenharmony_ci u64 raz : 44; 4248c2ecf20Sopenharmony_ci u64 enable : 20; 4258c2ecf20Sopenharmony_ci#else 4268c2ecf20Sopenharmony_ci u64 enable : 20; 4278c2ecf20Sopenharmony_ci u64 raz : 44; 4288c2ecf20Sopenharmony_ci#endif 4298c2ecf20Sopenharmony_ci } s; 4308c2ecf20Sopenharmony_ci}; 4318c2ecf20Sopenharmony_ci 4328c2ecf20Sopenharmony_ci/** 4338c2ecf20Sopenharmony_ci * struct emu_wd_int_ena_w1s - EMU Interrupt Enable Registers 4348c2ecf20Sopenharmony_ci * @ae_wd: Reads or sets enable for EMU(0..3)_WD_INT[AE_WD] 4358c2ecf20Sopenharmony_ci * @se_wd: Reads or sets enable for EMU(0..3)_WD_INT[SE_WD] 4368c2ecf20Sopenharmony_ci */ 4378c2ecf20Sopenharmony_ciunion emu_wd_int_ena_w1s { 4388c2ecf20Sopenharmony_ci u64 value; 4398c2ecf20Sopenharmony_ci struct { 4408c2ecf20Sopenharmony_ci#if (defined(__BIG_ENDIAN_BITFIELD)) 4418c2ecf20Sopenharmony_ci u64 raz2 : 12; 4428c2ecf20Sopenharmony_ci u64 ae_wd : 20; 4438c2ecf20Sopenharmony_ci u64 raz1 : 16; 4448c2ecf20Sopenharmony_ci u64 se_wd : 16; 4458c2ecf20Sopenharmony_ci#else 4468c2ecf20Sopenharmony_ci u64 se_wd : 16; 4478c2ecf20Sopenharmony_ci u64 raz1 : 16; 4488c2ecf20Sopenharmony_ci u64 ae_wd : 20; 4498c2ecf20Sopenharmony_ci u64 raz2 : 12; 4508c2ecf20Sopenharmony_ci#endif 4518c2ecf20Sopenharmony_ci } s; 4528c2ecf20Sopenharmony_ci}; 4538c2ecf20Sopenharmony_ci 4548c2ecf20Sopenharmony_ci/** 4558c2ecf20Sopenharmony_ci * struct emu_ge_int_ena_w1s - EMU Interrupt Enable set registers 4568c2ecf20Sopenharmony_ci * @ae_ge: Reads or sets enable for EMU(0..3)_GE_INT[AE_GE] 4578c2ecf20Sopenharmony_ci * @se_ge: Reads or sets enable for EMU(0..3)_GE_INT[SE_GE] 4588c2ecf20Sopenharmony_ci */ 4598c2ecf20Sopenharmony_ciunion emu_ge_int_ena_w1s { 4608c2ecf20Sopenharmony_ci u64 value; 4618c2ecf20Sopenharmony_ci struct { 4628c2ecf20Sopenharmony_ci#if (defined(__BIG_ENDIAN_BITFIELD)) 4638c2ecf20Sopenharmony_ci u64 raz_52_63 : 12; 4648c2ecf20Sopenharmony_ci u64 ae_ge : 20; 4658c2ecf20Sopenharmony_ci u64 raz_16_31: 16; 4668c2ecf20Sopenharmony_ci u64 se_ge : 16; 4678c2ecf20Sopenharmony_ci#else 4688c2ecf20Sopenharmony_ci u64 se_ge : 16; 4698c2ecf20Sopenharmony_ci u64 raz_16_31: 16; 4708c2ecf20Sopenharmony_ci u64 ae_ge : 20; 4718c2ecf20Sopenharmony_ci u64 raz_52_63 : 12; 4728c2ecf20Sopenharmony_ci#endif 4738c2ecf20Sopenharmony_ci } s; 4748c2ecf20Sopenharmony_ci}; 4758c2ecf20Sopenharmony_ci 4768c2ecf20Sopenharmony_ci/** 4778c2ecf20Sopenharmony_ci * struct nps_pkt_slc_ctl - Solicited Packet Out Control Registers 4788c2ecf20Sopenharmony_ci * @rh: Indicates whether to remove or include the response header 4798c2ecf20Sopenharmony_ci * 1 = Include, 0 = Remove 4808c2ecf20Sopenharmony_ci * @z: If set, 8 trailing 0x00 bytes will be added to the end of the 4818c2ecf20Sopenharmony_ci * outgoing packet. 4828c2ecf20Sopenharmony_ci * @enb: Enable for this port. 4838c2ecf20Sopenharmony_ci */ 4848c2ecf20Sopenharmony_ciunion nps_pkt_slc_ctl { 4858c2ecf20Sopenharmony_ci u64 value; 4868c2ecf20Sopenharmony_ci struct { 4878c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 4888c2ecf20Sopenharmony_ci u64 raz : 61; 4898c2ecf20Sopenharmony_ci u64 rh : 1; 4908c2ecf20Sopenharmony_ci u64 z : 1; 4918c2ecf20Sopenharmony_ci u64 enb : 1; 4928c2ecf20Sopenharmony_ci#else 4938c2ecf20Sopenharmony_ci u64 enb : 1; 4948c2ecf20Sopenharmony_ci u64 z : 1; 4958c2ecf20Sopenharmony_ci u64 rh : 1; 4968c2ecf20Sopenharmony_ci u64 raz : 61; 4978c2ecf20Sopenharmony_ci#endif 4988c2ecf20Sopenharmony_ci } s; 4998c2ecf20Sopenharmony_ci}; 5008c2ecf20Sopenharmony_ci 5018c2ecf20Sopenharmony_ci/** 5028c2ecf20Sopenharmony_ci * struct nps_pkt_slc_cnts - Solicited Packet Out Count Registers 5038c2ecf20Sopenharmony_ci * @slc_int: Returns a 1 when: 5048c2ecf20Sopenharmony_ci * NPS_PKT_SLC(i)_CNTS[CNT] > NPS_PKT_SLC(i)_INT_LEVELS[CNT], or 5058c2ecf20Sopenharmony_ci * NPS_PKT_SLC(i)_CNTS[TIMER] > NPS_PKT_SLC(i)_INT_LEVELS[TIMET]. 5068c2ecf20Sopenharmony_ci * To clear the bit, the CNTS register must be written to clear. 5078c2ecf20Sopenharmony_ci * @in_int: Returns a 1 when: 5088c2ecf20Sopenharmony_ci * NPS_PKT_IN(i)_DONE_CNTS[CNT] > NPS_PKT_IN(i)_INT_LEVELS[CNT]. 5098c2ecf20Sopenharmony_ci * To clear the bit, the DONE_CNTS register must be written to clear. 5108c2ecf20Sopenharmony_ci * @mbox_int: Returns a 1 when: 5118c2ecf20Sopenharmony_ci * NPS_PKT_MBOX_PF_VF(i)_INT[INTR] is set. To clear the bit, 5128c2ecf20Sopenharmony_ci * write NPS_PKT_MBOX_PF_VF(i)_INT[INTR] with 1. 5138c2ecf20Sopenharmony_ci * @timer: Timer, incremented every 2048 coprocessor clock cycles 5148c2ecf20Sopenharmony_ci * when [CNT] is not zero. The hardware clears both [TIMER] and 5158c2ecf20Sopenharmony_ci * [INT] when [CNT] goes to 0. 5168c2ecf20Sopenharmony_ci * @cnt: Packet counter. Hardware adds to [CNT] as it sends packets out. 5178c2ecf20Sopenharmony_ci * On a write to this CSR, hardware subtracts the amount written to the 5188c2ecf20Sopenharmony_ci * [CNT] field from [CNT]. 5198c2ecf20Sopenharmony_ci */ 5208c2ecf20Sopenharmony_ciunion nps_pkt_slc_cnts { 5218c2ecf20Sopenharmony_ci u64 value; 5228c2ecf20Sopenharmony_ci struct { 5238c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 5248c2ecf20Sopenharmony_ci u64 slc_int : 1; 5258c2ecf20Sopenharmony_ci u64 uns_int : 1; 5268c2ecf20Sopenharmony_ci u64 in_int : 1; 5278c2ecf20Sopenharmony_ci u64 mbox_int : 1; 5288c2ecf20Sopenharmony_ci u64 resend : 1; 5298c2ecf20Sopenharmony_ci u64 raz : 5; 5308c2ecf20Sopenharmony_ci u64 timer : 22; 5318c2ecf20Sopenharmony_ci u64 cnt : 32; 5328c2ecf20Sopenharmony_ci#else 5338c2ecf20Sopenharmony_ci u64 cnt : 32; 5348c2ecf20Sopenharmony_ci u64 timer : 22; 5358c2ecf20Sopenharmony_ci u64 raz : 5; 5368c2ecf20Sopenharmony_ci u64 resend : 1; 5378c2ecf20Sopenharmony_ci u64 mbox_int : 1; 5388c2ecf20Sopenharmony_ci u64 in_int : 1; 5398c2ecf20Sopenharmony_ci u64 uns_int : 1; 5408c2ecf20Sopenharmony_ci u64 slc_int : 1; 5418c2ecf20Sopenharmony_ci#endif 5428c2ecf20Sopenharmony_ci } s; 5438c2ecf20Sopenharmony_ci}; 5448c2ecf20Sopenharmony_ci 5458c2ecf20Sopenharmony_ci/** 5468c2ecf20Sopenharmony_ci * struct nps_pkt_slc_int_levels - Solicited Packet Out Interrupt Levels 5478c2ecf20Sopenharmony_ci * Registers. 5488c2ecf20Sopenharmony_ci * @bmode: Determines whether NPS_PKT_SLC_CNTS[CNT] is a byte or 5498c2ecf20Sopenharmony_ci * packet counter. 5508c2ecf20Sopenharmony_ci * @timet: Output port counter time interrupt threshold. 5518c2ecf20Sopenharmony_ci * @cnt: Output port counter interrupt threshold. 5528c2ecf20Sopenharmony_ci */ 5538c2ecf20Sopenharmony_ciunion nps_pkt_slc_int_levels { 5548c2ecf20Sopenharmony_ci u64 value; 5558c2ecf20Sopenharmony_ci struct { 5568c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 5578c2ecf20Sopenharmony_ci u64 bmode : 1; 5588c2ecf20Sopenharmony_ci u64 raz : 9; 5598c2ecf20Sopenharmony_ci u64 timet : 22; 5608c2ecf20Sopenharmony_ci u64 cnt : 32; 5618c2ecf20Sopenharmony_ci#else 5628c2ecf20Sopenharmony_ci u64 cnt : 32; 5638c2ecf20Sopenharmony_ci u64 timet : 22; 5648c2ecf20Sopenharmony_ci u64 raz : 9; 5658c2ecf20Sopenharmony_ci u64 bmode : 1; 5668c2ecf20Sopenharmony_ci#endif 5678c2ecf20Sopenharmony_ci } s; 5688c2ecf20Sopenharmony_ci}; 5698c2ecf20Sopenharmony_ci 5708c2ecf20Sopenharmony_ci/** 5718c2ecf20Sopenharmony_ci * struct nps_pkt_inst - NPS Packet Interrupt Register 5728c2ecf20Sopenharmony_ci * @in_err: Set when any NPS_PKT_IN_RERR_HI/LO bit and 5738c2ecf20Sopenharmony_ci * corresponding NPS_PKT_IN_RERR_*_ENA_* bit are bot set. 5748c2ecf20Sopenharmony_ci * @uns_err: Set when any NSP_PKT_UNS_RERR_HI/LO bit and 5758c2ecf20Sopenharmony_ci * corresponding NPS_PKT_UNS_RERR_*_ENA_* bit are both set. 5768c2ecf20Sopenharmony_ci * @slc_er: Set when any NSP_PKT_SLC_RERR_HI/LO bit and 5778c2ecf20Sopenharmony_ci * corresponding NPS_PKT_SLC_RERR_*_ENA_* bit are both set. 5788c2ecf20Sopenharmony_ci */ 5798c2ecf20Sopenharmony_ciunion nps_pkt_int { 5808c2ecf20Sopenharmony_ci u64 value; 5818c2ecf20Sopenharmony_ci struct { 5828c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 5838c2ecf20Sopenharmony_ci u64 raz : 54; 5848c2ecf20Sopenharmony_ci u64 uns_wto : 1; 5858c2ecf20Sopenharmony_ci u64 in_err : 1; 5868c2ecf20Sopenharmony_ci u64 uns_err : 1; 5878c2ecf20Sopenharmony_ci u64 slc_err : 1; 5888c2ecf20Sopenharmony_ci u64 in_dbe : 1; 5898c2ecf20Sopenharmony_ci u64 in_sbe : 1; 5908c2ecf20Sopenharmony_ci u64 uns_dbe : 1; 5918c2ecf20Sopenharmony_ci u64 uns_sbe : 1; 5928c2ecf20Sopenharmony_ci u64 slc_dbe : 1; 5938c2ecf20Sopenharmony_ci u64 slc_sbe : 1; 5948c2ecf20Sopenharmony_ci#else 5958c2ecf20Sopenharmony_ci u64 slc_sbe : 1; 5968c2ecf20Sopenharmony_ci u64 slc_dbe : 1; 5978c2ecf20Sopenharmony_ci u64 uns_sbe : 1; 5988c2ecf20Sopenharmony_ci u64 uns_dbe : 1; 5998c2ecf20Sopenharmony_ci u64 in_sbe : 1; 6008c2ecf20Sopenharmony_ci u64 in_dbe : 1; 6018c2ecf20Sopenharmony_ci u64 slc_err : 1; 6028c2ecf20Sopenharmony_ci u64 uns_err : 1; 6038c2ecf20Sopenharmony_ci u64 in_err : 1; 6048c2ecf20Sopenharmony_ci u64 uns_wto : 1; 6058c2ecf20Sopenharmony_ci u64 raz : 54; 6068c2ecf20Sopenharmony_ci#endif 6078c2ecf20Sopenharmony_ci } s; 6088c2ecf20Sopenharmony_ci}; 6098c2ecf20Sopenharmony_ci 6108c2ecf20Sopenharmony_ci/** 6118c2ecf20Sopenharmony_ci * struct nps_pkt_in_done_cnts - Input instruction ring counts registers 6128c2ecf20Sopenharmony_ci * @slc_cnt: Returns a 1 when: 6138c2ecf20Sopenharmony_ci * NPS_PKT_SLC(i)_CNTS[CNT] > NPS_PKT_SLC(i)_INT_LEVELS[CNT], or 6148c2ecf20Sopenharmony_ci * NPS_PKT_SLC(i)_CNTS[TIMER] > NPS_PKT_SCL(i)_INT_LEVELS[TIMET] 6158c2ecf20Sopenharmony_ci * To clear the bit, the CNTS register must be 6168c2ecf20Sopenharmony_ci * written to clear the underlying condition 6178c2ecf20Sopenharmony_ci * @uns_int: Return a 1 when: 6188c2ecf20Sopenharmony_ci * NPS_PKT_UNS(i)_CNTS[CNT] > NPS_PKT_UNS(i)_INT_LEVELS[CNT], or 6198c2ecf20Sopenharmony_ci * NPS_PKT_UNS(i)_CNTS[TIMER] > NPS_PKT_UNS(i)_INT_LEVELS[TIMET] 6208c2ecf20Sopenharmony_ci * To clear the bit, the CNTS register must be 6218c2ecf20Sopenharmony_ci * written to clear the underlying condition 6228c2ecf20Sopenharmony_ci * @in_int: Returns a 1 when: 6238c2ecf20Sopenharmony_ci * NPS_PKT_IN(i)_DONE_CNTS[CNT] > NPS_PKT_IN(i)_INT_LEVELS[CNT] 6248c2ecf20Sopenharmony_ci * To clear the bit, the DONE_CNTS register 6258c2ecf20Sopenharmony_ci * must be written to clear the underlying condition 6268c2ecf20Sopenharmony_ci * @mbox_int: Returns a 1 when: 6278c2ecf20Sopenharmony_ci * NPS_PKT_MBOX_PF_VF(i)_INT[INTR] is set. 6288c2ecf20Sopenharmony_ci * To clear the bit, write NPS_PKT_MBOX_PF_VF(i)_INT[INTR] 6298c2ecf20Sopenharmony_ci * with 1. 6308c2ecf20Sopenharmony_ci * @resend: A write of 1 will resend an MSI-X interrupt message if any 6318c2ecf20Sopenharmony_ci * of the following conditions are true for this ring "i". 6328c2ecf20Sopenharmony_ci * NPS_PKT_SLC(i)_CNTS[CNT] > NPS_PKT_SLC(i)_INT_LEVELS[CNT] 6338c2ecf20Sopenharmony_ci * NPS_PKT_SLC(i)_CNTS[TIMER] > NPS_PKT_SLC(i)_INT_LEVELS[TIMET] 6348c2ecf20Sopenharmony_ci * NPS_PKT_UNS(i)_CNTS[CNT] > NPS_PKT_UNS(i)_INT_LEVELS[CNT] 6358c2ecf20Sopenharmony_ci * NPS_PKT_UNS(i)_CNTS[TIMER] > NPS_PKT_UNS(i)_INT_LEVELS[TIMET] 6368c2ecf20Sopenharmony_ci * NPS_PKT_IN(i)_DONE_CNTS[CNT] > NPS_PKT_IN(i)_INT_LEVELS[CNT] 6378c2ecf20Sopenharmony_ci * NPS_PKT_MBOX_PF_VF(i)_INT[INTR] is set 6388c2ecf20Sopenharmony_ci * @cnt: Packet counter. Hardware adds to [CNT] as it reads 6398c2ecf20Sopenharmony_ci * packets. On a write to this CSR, hardware substracts the 6408c2ecf20Sopenharmony_ci * amount written to the [CNT] field from [CNT], which will 6418c2ecf20Sopenharmony_ci * clear PKT_IN(i)_INT_STATUS[INTR] if [CNT] becomes <= 6428c2ecf20Sopenharmony_ci * NPS_PKT_IN(i)_INT_LEVELS[CNT]. This register should be 6438c2ecf20Sopenharmony_ci * cleared before enabling a ring by reading the current 6448c2ecf20Sopenharmony_ci * value and writing it back. 6458c2ecf20Sopenharmony_ci */ 6468c2ecf20Sopenharmony_ciunion nps_pkt_in_done_cnts { 6478c2ecf20Sopenharmony_ci u64 value; 6488c2ecf20Sopenharmony_ci struct { 6498c2ecf20Sopenharmony_ci#if defined(__BIG_ENDIAN_BITFIELD) 6508c2ecf20Sopenharmony_ci u64 slc_int : 1; 6518c2ecf20Sopenharmony_ci u64 uns_int : 1; 6528c2ecf20Sopenharmony_ci u64 in_int : 1; 6538c2ecf20Sopenharmony_ci u64 mbox_int : 1; 6548c2ecf20Sopenharmony_ci u64 resend : 1; 6558c2ecf20Sopenharmony_ci u64 raz : 27; 6568c2ecf20Sopenharmony_ci u64 cnt : 32; 6578c2ecf20Sopenharmony_ci#else 6588c2ecf20Sopenharmony_ci u64 cnt : 32; 6598c2ecf20Sopenharmony_ci u64 raz : 27; 6608c2ecf20Sopenharmony_ci u64 resend : 1; 6618c2ecf20Sopenharmony_ci u64 mbox_int : 1; 6628c2ecf20Sopenharmony_ci u64 in_int : 1; 6638c2ecf20Sopenharmony_ci u64 uns_int : 1; 6648c2ecf20Sopenharmony_ci u64 slc_int : 1; 6658c2ecf20Sopenharmony_ci#endif 6668c2ecf20Sopenharmony_ci } s; 6678c2ecf20Sopenharmony_ci}; 6688c2ecf20Sopenharmony_ci 6698c2ecf20Sopenharmony_ci/** 6708c2ecf20Sopenharmony_ci * struct nps_pkt_in_instr_ctl - Input Instruction Ring Control Registers. 6718c2ecf20Sopenharmony_ci * @is64b: If 1, the ring uses 64-byte instructions. If 0, the 6728c2ecf20Sopenharmony_ci * ring uses 32-byte instructions. 6738c2ecf20Sopenharmony_ci * @enb: Enable for the input ring. 6748c2ecf20Sopenharmony_ci */ 6758c2ecf20Sopenharmony_ciunion nps_pkt_in_instr_ctl { 6768c2ecf20Sopenharmony_ci u64 value; 6778c2ecf20Sopenharmony_ci struct { 6788c2ecf20Sopenharmony_ci#if (defined(__BIG_ENDIAN_BITFIELD)) 6798c2ecf20Sopenharmony_ci u64 raz : 62; 6808c2ecf20Sopenharmony_ci u64 is64b : 1; 6818c2ecf20Sopenharmony_ci u64 enb : 1; 6828c2ecf20Sopenharmony_ci#else 6838c2ecf20Sopenharmony_ci u64 enb : 1; 6848c2ecf20Sopenharmony_ci u64 is64b : 1; 6858c2ecf20Sopenharmony_ci u64 raz : 62; 6868c2ecf20Sopenharmony_ci#endif 6878c2ecf20Sopenharmony_ci } s; 6888c2ecf20Sopenharmony_ci}; 6898c2ecf20Sopenharmony_ci 6908c2ecf20Sopenharmony_ci/** 6918c2ecf20Sopenharmony_ci * struct nps_pkt_in_instr_rsize - Input instruction ring size registers 6928c2ecf20Sopenharmony_ci * @rsize: Ring size (number of instructions) 6938c2ecf20Sopenharmony_ci */ 6948c2ecf20Sopenharmony_ciunion nps_pkt_in_instr_rsize { 6958c2ecf20Sopenharmony_ci u64 value; 6968c2ecf20Sopenharmony_ci struct { 6978c2ecf20Sopenharmony_ci#if (defined(__BIG_ENDIAN_BITFIELD)) 6988c2ecf20Sopenharmony_ci u64 raz : 32; 6998c2ecf20Sopenharmony_ci u64 rsize : 32; 7008c2ecf20Sopenharmony_ci#else 7018c2ecf20Sopenharmony_ci u64 rsize : 32; 7028c2ecf20Sopenharmony_ci u64 raz : 32; 7038c2ecf20Sopenharmony_ci#endif 7048c2ecf20Sopenharmony_ci } s; 7058c2ecf20Sopenharmony_ci}; 7068c2ecf20Sopenharmony_ci 7078c2ecf20Sopenharmony_ci/** 7088c2ecf20Sopenharmony_ci * struct nps_pkt_in_instr_baoff_dbell - Input instruction ring 7098c2ecf20Sopenharmony_ci * base address offset and doorbell registers 7108c2ecf20Sopenharmony_ci * @aoff: Address offset. The offset from the NPS_PKT_IN_INSTR_BADDR 7118c2ecf20Sopenharmony_ci * where the next pointer is read. 7128c2ecf20Sopenharmony_ci * @dbell: Pointer list doorbell count. Write operations to this field 7138c2ecf20Sopenharmony_ci * increments the present value here. Read operations return the 7148c2ecf20Sopenharmony_ci * present value. 7158c2ecf20Sopenharmony_ci */ 7168c2ecf20Sopenharmony_ciunion nps_pkt_in_instr_baoff_dbell { 7178c2ecf20Sopenharmony_ci u64 value; 7188c2ecf20Sopenharmony_ci struct { 7198c2ecf20Sopenharmony_ci#if (defined(__BIG_ENDIAN_BITFIELD)) 7208c2ecf20Sopenharmony_ci u64 aoff : 32; 7218c2ecf20Sopenharmony_ci u64 dbell : 32; 7228c2ecf20Sopenharmony_ci#else 7238c2ecf20Sopenharmony_ci u64 dbell : 32; 7248c2ecf20Sopenharmony_ci u64 aoff : 32; 7258c2ecf20Sopenharmony_ci#endif 7268c2ecf20Sopenharmony_ci } s; 7278c2ecf20Sopenharmony_ci}; 7288c2ecf20Sopenharmony_ci 7298c2ecf20Sopenharmony_ci/** 7308c2ecf20Sopenharmony_ci * struct nps_core_int_ena_w1s - NPS core interrupt enable set register 7318c2ecf20Sopenharmony_ci * @host_nps_wr_err: Reads or sets enable for 7328c2ecf20Sopenharmony_ci * NPS_CORE_INT[HOST_NPS_WR_ERR]. 7338c2ecf20Sopenharmony_ci * @npco_dma_malform: Reads or sets enable for 7348c2ecf20Sopenharmony_ci * NPS_CORE_INT[NPCO_DMA_MALFORM]. 7358c2ecf20Sopenharmony_ci * @exec_wr_timeout: Reads or sets enable for 7368c2ecf20Sopenharmony_ci * NPS_CORE_INT[EXEC_WR_TIMEOUT]. 7378c2ecf20Sopenharmony_ci * @host_wr_timeout: Reads or sets enable for 7388c2ecf20Sopenharmony_ci * NPS_CORE_INT[HOST_WR_TIMEOUT]. 7398c2ecf20Sopenharmony_ci * @host_wr_err: Reads or sets enable for 7408c2ecf20Sopenharmony_ci * NPS_CORE_INT[HOST_WR_ERR] 7418c2ecf20Sopenharmony_ci */ 7428c2ecf20Sopenharmony_ciunion nps_core_int_ena_w1s { 7438c2ecf20Sopenharmony_ci u64 value; 7448c2ecf20Sopenharmony_ci struct { 7458c2ecf20Sopenharmony_ci#if (defined(__BIG_ENDIAN_BITFIELD)) 7468c2ecf20Sopenharmony_ci u64 raz4 : 55; 7478c2ecf20Sopenharmony_ci u64 host_nps_wr_err : 1; 7488c2ecf20Sopenharmony_ci u64 npco_dma_malform : 1; 7498c2ecf20Sopenharmony_ci u64 exec_wr_timeout : 1; 7508c2ecf20Sopenharmony_ci u64 host_wr_timeout : 1; 7518c2ecf20Sopenharmony_ci u64 host_wr_err : 1; 7528c2ecf20Sopenharmony_ci u64 raz3 : 1; 7538c2ecf20Sopenharmony_ci u64 raz2 : 1; 7548c2ecf20Sopenharmony_ci u64 raz1 : 1; 7558c2ecf20Sopenharmony_ci u64 raz0 : 1; 7568c2ecf20Sopenharmony_ci#else 7578c2ecf20Sopenharmony_ci u64 raz0 : 1; 7588c2ecf20Sopenharmony_ci u64 raz1 : 1; 7598c2ecf20Sopenharmony_ci u64 raz2 : 1; 7608c2ecf20Sopenharmony_ci u64 raz3 : 1; 7618c2ecf20Sopenharmony_ci u64 host_wr_err : 1; 7628c2ecf20Sopenharmony_ci u64 host_wr_timeout : 1; 7638c2ecf20Sopenharmony_ci u64 exec_wr_timeout : 1; 7648c2ecf20Sopenharmony_ci u64 npco_dma_malform : 1; 7658c2ecf20Sopenharmony_ci u64 host_nps_wr_err : 1; 7668c2ecf20Sopenharmony_ci u64 raz4 : 55; 7678c2ecf20Sopenharmony_ci#endif 7688c2ecf20Sopenharmony_ci } s; 7698c2ecf20Sopenharmony_ci}; 7708c2ecf20Sopenharmony_ci 7718c2ecf20Sopenharmony_ci/** 7728c2ecf20Sopenharmony_ci * struct nps_core_gbl_vfcfg - Global VF Configuration Register. 7738c2ecf20Sopenharmony_ci * @ilk_disable: When set, this bit indicates that the ILK interface has 7748c2ecf20Sopenharmony_ci * been disabled. 7758c2ecf20Sopenharmony_ci * @obaf: BMO allocation control 7768c2ecf20Sopenharmony_ci * 0 = allocate per queue 7778c2ecf20Sopenharmony_ci * 1 = allocate per VF 7788c2ecf20Sopenharmony_ci * @ibaf: BMI allocation control 7798c2ecf20Sopenharmony_ci * 0 = allocate per queue 7808c2ecf20Sopenharmony_ci * 1 = allocate per VF 7818c2ecf20Sopenharmony_ci * @zaf: ZIP allocation control 7828c2ecf20Sopenharmony_ci * 0 = allocate per queue 7838c2ecf20Sopenharmony_ci * 1 = allocate per VF 7848c2ecf20Sopenharmony_ci * @aeaf: AE allocation control 7858c2ecf20Sopenharmony_ci * 0 = allocate per queue 7868c2ecf20Sopenharmony_ci * 1 = allocate per VF 7878c2ecf20Sopenharmony_ci * @seaf: SE allocation control 7888c2ecf20Sopenharmony_ci * 0 = allocation per queue 7898c2ecf20Sopenharmony_ci * 1 = allocate per VF 7908c2ecf20Sopenharmony_ci * @cfg: VF/PF mode. 7918c2ecf20Sopenharmony_ci */ 7928c2ecf20Sopenharmony_ciunion nps_core_gbl_vfcfg { 7938c2ecf20Sopenharmony_ci u64 value; 7948c2ecf20Sopenharmony_ci struct { 7958c2ecf20Sopenharmony_ci#if (defined(__BIG_ENDIAN_BITFIELD)) 7968c2ecf20Sopenharmony_ci u64 raz :55; 7978c2ecf20Sopenharmony_ci u64 ilk_disable :1; 7988c2ecf20Sopenharmony_ci u64 obaf :1; 7998c2ecf20Sopenharmony_ci u64 ibaf :1; 8008c2ecf20Sopenharmony_ci u64 zaf :1; 8018c2ecf20Sopenharmony_ci u64 aeaf :1; 8028c2ecf20Sopenharmony_ci u64 seaf :1; 8038c2ecf20Sopenharmony_ci u64 cfg :3; 8048c2ecf20Sopenharmony_ci#else 8058c2ecf20Sopenharmony_ci u64 cfg :3; 8068c2ecf20Sopenharmony_ci u64 seaf :1; 8078c2ecf20Sopenharmony_ci u64 aeaf :1; 8088c2ecf20Sopenharmony_ci u64 zaf :1; 8098c2ecf20Sopenharmony_ci u64 ibaf :1; 8108c2ecf20Sopenharmony_ci u64 obaf :1; 8118c2ecf20Sopenharmony_ci u64 ilk_disable :1; 8128c2ecf20Sopenharmony_ci u64 raz :55; 8138c2ecf20Sopenharmony_ci#endif 8148c2ecf20Sopenharmony_ci } s; 8158c2ecf20Sopenharmony_ci}; 8168c2ecf20Sopenharmony_ci 8178c2ecf20Sopenharmony_ci/** 8188c2ecf20Sopenharmony_ci * struct nps_core_int_active - NPS Core Interrupt Active Register 8198c2ecf20Sopenharmony_ci * @resend: Resend MSI-X interrupt if needs to handle interrupts 8208c2ecf20Sopenharmony_ci * Sofware can set this bit and then exit the ISR. 8218c2ecf20Sopenharmony_ci * @ocla: Set when any OCLA(0)_INT and corresponding OCLA(0_INT_ENA_W1C 8228c2ecf20Sopenharmony_ci * bit are set 8238c2ecf20Sopenharmony_ci * @mbox: Set when any NPS_PKT_MBOX_INT_LO/HI and corresponding 8248c2ecf20Sopenharmony_ci * NPS_PKT_MBOX_INT_LO_ENA_W1C/HI_ENA_W1C bits are set 8258c2ecf20Sopenharmony_ci * @emu: bit i is set in [EMU] when any EMU(i)_INT bit is set 8268c2ecf20Sopenharmony_ci * @bmo: Set when any BMO_INT bit is set 8278c2ecf20Sopenharmony_ci * @bmi: Set when any BMI_INT bit is set or when any non-RO 8288c2ecf20Sopenharmony_ci * BMI_INT and corresponding BMI_INT_ENA_W1C bits are both set 8298c2ecf20Sopenharmony_ci * @aqm: Set when any AQM_INT bit is set 8308c2ecf20Sopenharmony_ci * @zqm: Set when any ZQM_INT bit is set 8318c2ecf20Sopenharmony_ci * @efl: Set when any EFL_INT RO bit is set or when any non-RO EFL_INT 8328c2ecf20Sopenharmony_ci * and corresponding EFL_INT_ENA_W1C bits are both set 8338c2ecf20Sopenharmony_ci * @ilk: Set when any ILK_INT bit is set 8348c2ecf20Sopenharmony_ci * @lbc: Set when any LBC_INT RO bit is set or when any non-RO LBC_INT 8358c2ecf20Sopenharmony_ci * and corresponding LBC_INT_ENA_W1C bits are bot set 8368c2ecf20Sopenharmony_ci * @pem: Set when any PEM(0)_INT RO bit is set or when any non-RO 8378c2ecf20Sopenharmony_ci * PEM(0)_INT and corresponding PEM(0)_INT_ENA_W1C bit are both set 8388c2ecf20Sopenharmony_ci * @ucd: Set when any UCD_INT bit is set 8398c2ecf20Sopenharmony_ci * @zctl: Set when any ZIP_INT RO bit is set or when any non-RO ZIP_INT 8408c2ecf20Sopenharmony_ci * and corresponding ZIP_INT_ENA_W1C bits are both set 8418c2ecf20Sopenharmony_ci * @lbm: Set when any LBM_INT bit is set 8428c2ecf20Sopenharmony_ci * @nps_pkt: Set when any NPS_PKT_INT bit is set 8438c2ecf20Sopenharmony_ci * @nps_core: Set when any NPS_CORE_INT RO bit is set or when non-RO 8448c2ecf20Sopenharmony_ci * NPS_CORE_INT and corresponding NSP_CORE_INT_ENA_W1C bits are both set 8458c2ecf20Sopenharmony_ci */ 8468c2ecf20Sopenharmony_ciunion nps_core_int_active { 8478c2ecf20Sopenharmony_ci u64 value; 8488c2ecf20Sopenharmony_ci struct { 8498c2ecf20Sopenharmony_ci#if (defined(__BIG_ENDIAN_BITFIELD)) 8508c2ecf20Sopenharmony_ci u64 resend : 1; 8518c2ecf20Sopenharmony_ci u64 raz : 43; 8528c2ecf20Sopenharmony_ci u64 ocla : 1; 8538c2ecf20Sopenharmony_ci u64 mbox : 1; 8548c2ecf20Sopenharmony_ci u64 emu : 4; 8558c2ecf20Sopenharmony_ci u64 bmo : 1; 8568c2ecf20Sopenharmony_ci u64 bmi : 1; 8578c2ecf20Sopenharmony_ci u64 aqm : 1; 8588c2ecf20Sopenharmony_ci u64 zqm : 1; 8598c2ecf20Sopenharmony_ci u64 efl : 1; 8608c2ecf20Sopenharmony_ci u64 ilk : 1; 8618c2ecf20Sopenharmony_ci u64 lbc : 1; 8628c2ecf20Sopenharmony_ci u64 pem : 1; 8638c2ecf20Sopenharmony_ci u64 pom : 1; 8648c2ecf20Sopenharmony_ci u64 ucd : 1; 8658c2ecf20Sopenharmony_ci u64 zctl : 1; 8668c2ecf20Sopenharmony_ci u64 lbm : 1; 8678c2ecf20Sopenharmony_ci u64 nps_pkt : 1; 8688c2ecf20Sopenharmony_ci u64 nps_core : 1; 8698c2ecf20Sopenharmony_ci#else 8708c2ecf20Sopenharmony_ci u64 nps_core : 1; 8718c2ecf20Sopenharmony_ci u64 nps_pkt : 1; 8728c2ecf20Sopenharmony_ci u64 lbm : 1; 8738c2ecf20Sopenharmony_ci u64 zctl: 1; 8748c2ecf20Sopenharmony_ci u64 ucd : 1; 8758c2ecf20Sopenharmony_ci u64 pom : 1; 8768c2ecf20Sopenharmony_ci u64 pem : 1; 8778c2ecf20Sopenharmony_ci u64 lbc : 1; 8788c2ecf20Sopenharmony_ci u64 ilk : 1; 8798c2ecf20Sopenharmony_ci u64 efl : 1; 8808c2ecf20Sopenharmony_ci u64 zqm : 1; 8818c2ecf20Sopenharmony_ci u64 aqm : 1; 8828c2ecf20Sopenharmony_ci u64 bmi : 1; 8838c2ecf20Sopenharmony_ci u64 bmo : 1; 8848c2ecf20Sopenharmony_ci u64 emu : 4; 8858c2ecf20Sopenharmony_ci u64 mbox : 1; 8868c2ecf20Sopenharmony_ci u64 ocla : 1; 8878c2ecf20Sopenharmony_ci u64 raz : 43; 8888c2ecf20Sopenharmony_ci u64 resend : 1; 8898c2ecf20Sopenharmony_ci#endif 8908c2ecf20Sopenharmony_ci } s; 8918c2ecf20Sopenharmony_ci}; 8928c2ecf20Sopenharmony_ci 8938c2ecf20Sopenharmony_ci/** 8948c2ecf20Sopenharmony_ci * struct efl_core_int - EFL Interrupt Registers 8958c2ecf20Sopenharmony_ci * @epci_decode_err: EPCI decoded a transacation that was unknown 8968c2ecf20Sopenharmony_ci * This error should only occurred when there is a micrcode/SE error 8978c2ecf20Sopenharmony_ci * and should be considered fatal 8988c2ecf20Sopenharmony_ci * @ae_err: An AE uncorrectable error occurred. 8998c2ecf20Sopenharmony_ci * See EFL_CORE(0..3)_AE_ERR_INT 9008c2ecf20Sopenharmony_ci * @se_err: An SE uncorrectable error occurred. 9018c2ecf20Sopenharmony_ci * See EFL_CORE(0..3)_SE_ERR_INT 9028c2ecf20Sopenharmony_ci * @dbe: Double-bit error occurred in EFL 9038c2ecf20Sopenharmony_ci * @sbe: Single-bit error occurred in EFL 9048c2ecf20Sopenharmony_ci * @d_left: Asserted when new POM-Header-BMI-data is 9058c2ecf20Sopenharmony_ci * being sent to an Exec, and that Exec has Not read all BMI 9068c2ecf20Sopenharmony_ci * data associated with the previous POM header 9078c2ecf20Sopenharmony_ci * @len_ovr: Asserted when an Exec-Read is issued that is more than 9088c2ecf20Sopenharmony_ci * 14 greater in length that the BMI data left to be read 9098c2ecf20Sopenharmony_ci */ 9108c2ecf20Sopenharmony_ciunion efl_core_int { 9118c2ecf20Sopenharmony_ci u64 value; 9128c2ecf20Sopenharmony_ci struct { 9138c2ecf20Sopenharmony_ci#if (defined(__BIG_ENDIAN_BITFIELD)) 9148c2ecf20Sopenharmony_ci u64 raz : 57; 9158c2ecf20Sopenharmony_ci u64 epci_decode_err : 1; 9168c2ecf20Sopenharmony_ci u64 ae_err : 1; 9178c2ecf20Sopenharmony_ci u64 se_err : 1; 9188c2ecf20Sopenharmony_ci u64 dbe : 1; 9198c2ecf20Sopenharmony_ci u64 sbe : 1; 9208c2ecf20Sopenharmony_ci u64 d_left : 1; 9218c2ecf20Sopenharmony_ci u64 len_ovr : 1; 9228c2ecf20Sopenharmony_ci#else 9238c2ecf20Sopenharmony_ci u64 len_ovr : 1; 9248c2ecf20Sopenharmony_ci u64 d_left : 1; 9258c2ecf20Sopenharmony_ci u64 sbe : 1; 9268c2ecf20Sopenharmony_ci u64 dbe : 1; 9278c2ecf20Sopenharmony_ci u64 se_err : 1; 9288c2ecf20Sopenharmony_ci u64 ae_err : 1; 9298c2ecf20Sopenharmony_ci u64 epci_decode_err : 1; 9308c2ecf20Sopenharmony_ci u64 raz : 57; 9318c2ecf20Sopenharmony_ci#endif 9328c2ecf20Sopenharmony_ci } s; 9338c2ecf20Sopenharmony_ci}; 9348c2ecf20Sopenharmony_ci 9358c2ecf20Sopenharmony_ci/** 9368c2ecf20Sopenharmony_ci * struct efl_core_int_ena_w1s - EFL core interrupt enable set register 9378c2ecf20Sopenharmony_ci * @epci_decode_err: Reads or sets enable for 9388c2ecf20Sopenharmony_ci * EFL_CORE(0..3)_INT[EPCI_DECODE_ERR]. 9398c2ecf20Sopenharmony_ci * @d_left: Reads or sets enable for 9408c2ecf20Sopenharmony_ci * EFL_CORE(0..3)_INT[D_LEFT]. 9418c2ecf20Sopenharmony_ci * @len_ovr: Reads or sets enable for 9428c2ecf20Sopenharmony_ci * EFL_CORE(0..3)_INT[LEN_OVR]. 9438c2ecf20Sopenharmony_ci */ 9448c2ecf20Sopenharmony_ciunion efl_core_int_ena_w1s { 9458c2ecf20Sopenharmony_ci u64 value; 9468c2ecf20Sopenharmony_ci struct { 9478c2ecf20Sopenharmony_ci#if (defined(__BIG_ENDIAN_BITFIELD)) 9488c2ecf20Sopenharmony_ci u64 raz_7_63 : 57; 9498c2ecf20Sopenharmony_ci u64 epci_decode_err : 1; 9508c2ecf20Sopenharmony_ci u64 raz_2_5 : 4; 9518c2ecf20Sopenharmony_ci u64 d_left : 1; 9528c2ecf20Sopenharmony_ci u64 len_ovr : 1; 9538c2ecf20Sopenharmony_ci#else 9548c2ecf20Sopenharmony_ci u64 len_ovr : 1; 9558c2ecf20Sopenharmony_ci u64 d_left : 1; 9568c2ecf20Sopenharmony_ci u64 raz_2_5 : 4; 9578c2ecf20Sopenharmony_ci u64 epci_decode_err : 1; 9588c2ecf20Sopenharmony_ci u64 raz_7_63 : 57; 9598c2ecf20Sopenharmony_ci#endif 9608c2ecf20Sopenharmony_ci } s; 9618c2ecf20Sopenharmony_ci}; 9628c2ecf20Sopenharmony_ci 9638c2ecf20Sopenharmony_ci/** 9648c2ecf20Sopenharmony_ci * struct efl_rnm_ctl_status - RNM Control and Status Register 9658c2ecf20Sopenharmony_ci * @ent_sel: Select input to RNM FIFO 9668c2ecf20Sopenharmony_ci * @exp_ent: Exported entropy enable for random number generator 9678c2ecf20Sopenharmony_ci * @rng_rst: Reset to RNG. Setting this bit to 1 cancels the generation 9688c2ecf20Sopenharmony_ci * of the current random number. 9698c2ecf20Sopenharmony_ci * @rnm_rst: Reset the RNM. Setting this bit to 1 clears all sorted numbers 9708c2ecf20Sopenharmony_ci * in the random number memory. 9718c2ecf20Sopenharmony_ci * @rng_en: Enabled the output of the RNG. 9728c2ecf20Sopenharmony_ci * @ent_en: Entropy enable for random number generator. 9738c2ecf20Sopenharmony_ci */ 9748c2ecf20Sopenharmony_ciunion efl_rnm_ctl_status { 9758c2ecf20Sopenharmony_ci u64 value; 9768c2ecf20Sopenharmony_ci struct { 9778c2ecf20Sopenharmony_ci#if (defined(__BIG_ENDIAN_BITFIELD)) 9788c2ecf20Sopenharmony_ci u64 raz_9_63 : 55; 9798c2ecf20Sopenharmony_ci u64 ent_sel : 4; 9808c2ecf20Sopenharmony_ci u64 exp_ent : 1; 9818c2ecf20Sopenharmony_ci u64 rng_rst : 1; 9828c2ecf20Sopenharmony_ci u64 rnm_rst : 1; 9838c2ecf20Sopenharmony_ci u64 rng_en : 1; 9848c2ecf20Sopenharmony_ci u64 ent_en : 1; 9858c2ecf20Sopenharmony_ci#else 9868c2ecf20Sopenharmony_ci u64 ent_en : 1; 9878c2ecf20Sopenharmony_ci u64 rng_en : 1; 9888c2ecf20Sopenharmony_ci u64 rnm_rst : 1; 9898c2ecf20Sopenharmony_ci u64 rng_rst : 1; 9908c2ecf20Sopenharmony_ci u64 exp_ent : 1; 9918c2ecf20Sopenharmony_ci u64 ent_sel : 4; 9928c2ecf20Sopenharmony_ci u64 raz_9_63 : 55; 9938c2ecf20Sopenharmony_ci#endif 9948c2ecf20Sopenharmony_ci } s; 9958c2ecf20Sopenharmony_ci}; 9968c2ecf20Sopenharmony_ci 9978c2ecf20Sopenharmony_ci/** 9988c2ecf20Sopenharmony_ci * struct bmi_ctl - BMI control register 9998c2ecf20Sopenharmony_ci * @ilk_hdrq_thrsh: Maximum number of header queue locations 10008c2ecf20Sopenharmony_ci * that ILK packets may consume. When the threshold is 10018c2ecf20Sopenharmony_ci * exceeded ILK_XOFF is sent to the BMI_X2P_ARB. 10028c2ecf20Sopenharmony_ci * @nps_hdrq_thrsh: Maximum number of header queue locations 10038c2ecf20Sopenharmony_ci * that NPS packets may consume. When the threshold is 10048c2ecf20Sopenharmony_ci * exceeded NPS_XOFF is sent to the BMI_X2P_ARB. 10058c2ecf20Sopenharmony_ci * @totl_hdrq_thrsh: Maximum number of header queue locations 10068c2ecf20Sopenharmony_ci * that the sum of ILK and NPS packets may consume. 10078c2ecf20Sopenharmony_ci * @ilk_free_thrsh: Maximum number of buffers that ILK packet 10088c2ecf20Sopenharmony_ci * flows may consume before ILK_XOFF is sent to the BMI_X2P_ARB. 10098c2ecf20Sopenharmony_ci * @nps_free_thrsh: Maximum number of buffers that NPS packet 10108c2ecf20Sopenharmony_ci * flows may consume before NPS XOFF is sent to the BMI_X2p_ARB. 10118c2ecf20Sopenharmony_ci * @totl_free_thrsh: Maximum number of buffers that bot ILK and NPS 10128c2ecf20Sopenharmony_ci * packet flows may consume before both NPS_XOFF and ILK_XOFF 10138c2ecf20Sopenharmony_ci * are asserted to the BMI_X2P_ARB. 10148c2ecf20Sopenharmony_ci * @max_pkt_len: Maximum packet length, integral number of 256B 10158c2ecf20Sopenharmony_ci * buffers. 10168c2ecf20Sopenharmony_ci */ 10178c2ecf20Sopenharmony_ciunion bmi_ctl { 10188c2ecf20Sopenharmony_ci u64 value; 10198c2ecf20Sopenharmony_ci struct { 10208c2ecf20Sopenharmony_ci#if (defined(__BIG_ENDIAN_BITFIELD)) 10218c2ecf20Sopenharmony_ci u64 raz_56_63 : 8; 10228c2ecf20Sopenharmony_ci u64 ilk_hdrq_thrsh : 8; 10238c2ecf20Sopenharmony_ci u64 nps_hdrq_thrsh : 8; 10248c2ecf20Sopenharmony_ci u64 totl_hdrq_thrsh : 8; 10258c2ecf20Sopenharmony_ci u64 ilk_free_thrsh : 8; 10268c2ecf20Sopenharmony_ci u64 nps_free_thrsh : 8; 10278c2ecf20Sopenharmony_ci u64 totl_free_thrsh : 8; 10288c2ecf20Sopenharmony_ci u64 max_pkt_len : 8; 10298c2ecf20Sopenharmony_ci#else 10308c2ecf20Sopenharmony_ci u64 max_pkt_len : 8; 10318c2ecf20Sopenharmony_ci u64 totl_free_thrsh : 8; 10328c2ecf20Sopenharmony_ci u64 nps_free_thrsh : 8; 10338c2ecf20Sopenharmony_ci u64 ilk_free_thrsh : 8; 10348c2ecf20Sopenharmony_ci u64 totl_hdrq_thrsh : 8; 10358c2ecf20Sopenharmony_ci u64 nps_hdrq_thrsh : 8; 10368c2ecf20Sopenharmony_ci u64 ilk_hdrq_thrsh : 8; 10378c2ecf20Sopenharmony_ci u64 raz_56_63 : 8; 10388c2ecf20Sopenharmony_ci#endif 10398c2ecf20Sopenharmony_ci } s; 10408c2ecf20Sopenharmony_ci}; 10418c2ecf20Sopenharmony_ci 10428c2ecf20Sopenharmony_ci/** 10438c2ecf20Sopenharmony_ci * struct bmi_int_ena_w1s - BMI interrupt enable set register 10448c2ecf20Sopenharmony_ci * @ilk_req_oflw: Reads or sets enable for 10458c2ecf20Sopenharmony_ci * BMI_INT[ILK_REQ_OFLW]. 10468c2ecf20Sopenharmony_ci * @nps_req_oflw: Reads or sets enable for 10478c2ecf20Sopenharmony_ci * BMI_INT[NPS_REQ_OFLW]. 10488c2ecf20Sopenharmony_ci * @fpf_undrrn: Reads or sets enable for 10498c2ecf20Sopenharmony_ci * BMI_INT[FPF_UNDRRN]. 10508c2ecf20Sopenharmony_ci * @eop_err_ilk: Reads or sets enable for 10518c2ecf20Sopenharmony_ci * BMI_INT[EOP_ERR_ILK]. 10528c2ecf20Sopenharmony_ci * @eop_err_nps: Reads or sets enable for 10538c2ecf20Sopenharmony_ci * BMI_INT[EOP_ERR_NPS]. 10548c2ecf20Sopenharmony_ci * @sop_err_ilk: Reads or sets enable for 10558c2ecf20Sopenharmony_ci * BMI_INT[SOP_ERR_ILK]. 10568c2ecf20Sopenharmony_ci * @sop_err_nps: Reads or sets enable for 10578c2ecf20Sopenharmony_ci * BMI_INT[SOP_ERR_NPS]. 10588c2ecf20Sopenharmony_ci * @pkt_rcv_err_ilk: Reads or sets enable for 10598c2ecf20Sopenharmony_ci * BMI_INT[PKT_RCV_ERR_ILK]. 10608c2ecf20Sopenharmony_ci * @pkt_rcv_err_nps: Reads or sets enable for 10618c2ecf20Sopenharmony_ci * BMI_INT[PKT_RCV_ERR_NPS]. 10628c2ecf20Sopenharmony_ci * @max_len_err_ilk: Reads or sets enable for 10638c2ecf20Sopenharmony_ci * BMI_INT[MAX_LEN_ERR_ILK]. 10648c2ecf20Sopenharmony_ci * @max_len_err_nps: Reads or sets enable for 10658c2ecf20Sopenharmony_ci * BMI_INT[MAX_LEN_ERR_NPS]. 10668c2ecf20Sopenharmony_ci */ 10678c2ecf20Sopenharmony_ciunion bmi_int_ena_w1s { 10688c2ecf20Sopenharmony_ci u64 value; 10698c2ecf20Sopenharmony_ci struct { 10708c2ecf20Sopenharmony_ci#if (defined(__BIG_ENDIAN_BITFIELD)) 10718c2ecf20Sopenharmony_ci u64 raz_13_63 : 51; 10728c2ecf20Sopenharmony_ci u64 ilk_req_oflw : 1; 10738c2ecf20Sopenharmony_ci u64 nps_req_oflw : 1; 10748c2ecf20Sopenharmony_ci u64 raz_10 : 1; 10758c2ecf20Sopenharmony_ci u64 raz_9 : 1; 10768c2ecf20Sopenharmony_ci u64 fpf_undrrn : 1; 10778c2ecf20Sopenharmony_ci u64 eop_err_ilk : 1; 10788c2ecf20Sopenharmony_ci u64 eop_err_nps : 1; 10798c2ecf20Sopenharmony_ci u64 sop_err_ilk : 1; 10808c2ecf20Sopenharmony_ci u64 sop_err_nps : 1; 10818c2ecf20Sopenharmony_ci u64 pkt_rcv_err_ilk : 1; 10828c2ecf20Sopenharmony_ci u64 pkt_rcv_err_nps : 1; 10838c2ecf20Sopenharmony_ci u64 max_len_err_ilk : 1; 10848c2ecf20Sopenharmony_ci u64 max_len_err_nps : 1; 10858c2ecf20Sopenharmony_ci#else 10868c2ecf20Sopenharmony_ci u64 max_len_err_nps : 1; 10878c2ecf20Sopenharmony_ci u64 max_len_err_ilk : 1; 10888c2ecf20Sopenharmony_ci u64 pkt_rcv_err_nps : 1; 10898c2ecf20Sopenharmony_ci u64 pkt_rcv_err_ilk : 1; 10908c2ecf20Sopenharmony_ci u64 sop_err_nps : 1; 10918c2ecf20Sopenharmony_ci u64 sop_err_ilk : 1; 10928c2ecf20Sopenharmony_ci u64 eop_err_nps : 1; 10938c2ecf20Sopenharmony_ci u64 eop_err_ilk : 1; 10948c2ecf20Sopenharmony_ci u64 fpf_undrrn : 1; 10958c2ecf20Sopenharmony_ci u64 raz_9 : 1; 10968c2ecf20Sopenharmony_ci u64 raz_10 : 1; 10978c2ecf20Sopenharmony_ci u64 nps_req_oflw : 1; 10988c2ecf20Sopenharmony_ci u64 ilk_req_oflw : 1; 10998c2ecf20Sopenharmony_ci u64 raz_13_63 : 51; 11008c2ecf20Sopenharmony_ci#endif 11018c2ecf20Sopenharmony_ci } s; 11028c2ecf20Sopenharmony_ci}; 11038c2ecf20Sopenharmony_ci 11048c2ecf20Sopenharmony_ci/** 11058c2ecf20Sopenharmony_ci * struct bmo_ctl2 - BMO Control2 Register 11068c2ecf20Sopenharmony_ci * @arb_sel: Determines P2X Arbitration 11078c2ecf20Sopenharmony_ci * @ilk_buf_thrsh: Maximum number of buffers that the 11088c2ecf20Sopenharmony_ci * ILK packet flows may consume before ILK XOFF is 11098c2ecf20Sopenharmony_ci * asserted to the POM. 11108c2ecf20Sopenharmony_ci * @nps_slc_buf_thrsh: Maximum number of buffers that the 11118c2ecf20Sopenharmony_ci * NPS_SLC packet flow may consume before NPS_SLC XOFF is 11128c2ecf20Sopenharmony_ci * asserted to the POM. 11138c2ecf20Sopenharmony_ci * @nps_uns_buf_thrsh: Maximum number of buffers that the 11148c2ecf20Sopenharmony_ci * NPS_UNS packet flow may consume before NPS_UNS XOFF is 11158c2ecf20Sopenharmony_ci * asserted to the POM. 11168c2ecf20Sopenharmony_ci * @totl_buf_thrsh: Maximum number of buffers that ILK, NPS_UNS and 11178c2ecf20Sopenharmony_ci * NPS_SLC packet flows may consume before NPS_UNS XOFF, NSP_SLC and 11188c2ecf20Sopenharmony_ci * ILK_XOFF are all asserted POM. 11198c2ecf20Sopenharmony_ci */ 11208c2ecf20Sopenharmony_ciunion bmo_ctl2 { 11218c2ecf20Sopenharmony_ci u64 value; 11228c2ecf20Sopenharmony_ci struct { 11238c2ecf20Sopenharmony_ci#if (defined(__BIG_ENDIAN_BITFIELD)) 11248c2ecf20Sopenharmony_ci u64 arb_sel : 1; 11258c2ecf20Sopenharmony_ci u64 raz_32_62 : 31; 11268c2ecf20Sopenharmony_ci u64 ilk_buf_thrsh : 8; 11278c2ecf20Sopenharmony_ci u64 nps_slc_buf_thrsh : 8; 11288c2ecf20Sopenharmony_ci u64 nps_uns_buf_thrsh : 8; 11298c2ecf20Sopenharmony_ci u64 totl_buf_thrsh : 8; 11308c2ecf20Sopenharmony_ci#else 11318c2ecf20Sopenharmony_ci u64 totl_buf_thrsh : 8; 11328c2ecf20Sopenharmony_ci u64 nps_uns_buf_thrsh : 8; 11338c2ecf20Sopenharmony_ci u64 nps_slc_buf_thrsh : 8; 11348c2ecf20Sopenharmony_ci u64 ilk_buf_thrsh : 8; 11358c2ecf20Sopenharmony_ci u64 raz_32_62 : 31; 11368c2ecf20Sopenharmony_ci u64 arb_sel : 1; 11378c2ecf20Sopenharmony_ci#endif 11388c2ecf20Sopenharmony_ci } s; 11398c2ecf20Sopenharmony_ci}; 11408c2ecf20Sopenharmony_ci 11418c2ecf20Sopenharmony_ci/** 11428c2ecf20Sopenharmony_ci * struct pom_int_ena_w1s - POM interrupt enable set register 11438c2ecf20Sopenharmony_ci * @illegal_intf: Reads or sets enable for POM_INT[ILLEGAL_INTF]. 11448c2ecf20Sopenharmony_ci * @illegal_dport: Reads or sets enable for POM_INT[ILLEGAL_DPORT]. 11458c2ecf20Sopenharmony_ci */ 11468c2ecf20Sopenharmony_ciunion pom_int_ena_w1s { 11478c2ecf20Sopenharmony_ci u64 value; 11488c2ecf20Sopenharmony_ci struct { 11498c2ecf20Sopenharmony_ci#if (defined(__BIG_ENDIAN_BITFIELD)) 11508c2ecf20Sopenharmony_ci u64 raz2 : 60; 11518c2ecf20Sopenharmony_ci u64 illegal_intf : 1; 11528c2ecf20Sopenharmony_ci u64 illegal_dport : 1; 11538c2ecf20Sopenharmony_ci u64 raz1 : 1; 11548c2ecf20Sopenharmony_ci u64 raz0 : 1; 11558c2ecf20Sopenharmony_ci#else 11568c2ecf20Sopenharmony_ci u64 raz0 : 1; 11578c2ecf20Sopenharmony_ci u64 raz1 : 1; 11588c2ecf20Sopenharmony_ci u64 illegal_dport : 1; 11598c2ecf20Sopenharmony_ci u64 illegal_intf : 1; 11608c2ecf20Sopenharmony_ci u64 raz2 : 60; 11618c2ecf20Sopenharmony_ci#endif 11628c2ecf20Sopenharmony_ci } s; 11638c2ecf20Sopenharmony_ci}; 11648c2ecf20Sopenharmony_ci 11658c2ecf20Sopenharmony_ci/** 11668c2ecf20Sopenharmony_ci * struct lbc_inval_ctl - LBC invalidation control register 11678c2ecf20Sopenharmony_ci * @wait_timer: Wait timer for wait state. [WAIT_TIMER] must 11688c2ecf20Sopenharmony_ci * always be written with its reset value. 11698c2ecf20Sopenharmony_ci * @cam_inval_start: Software should write [CAM_INVAL_START]=1 11708c2ecf20Sopenharmony_ci * to initiate an LBC cache invalidation. After this, software 11718c2ecf20Sopenharmony_ci * should read LBC_INVAL_STATUS until LBC_INVAL_STATUS[DONE] is set. 11728c2ecf20Sopenharmony_ci * LBC hardware clears [CAVM_INVAL_START] before software can 11738c2ecf20Sopenharmony_ci * observed LBC_INVAL_STATUS[DONE] to be set 11748c2ecf20Sopenharmony_ci */ 11758c2ecf20Sopenharmony_ciunion lbc_inval_ctl { 11768c2ecf20Sopenharmony_ci u64 value; 11778c2ecf20Sopenharmony_ci struct { 11788c2ecf20Sopenharmony_ci#if (defined(__BIG_ENDIAN_BITFIELD)) 11798c2ecf20Sopenharmony_ci u64 raz2 : 48; 11808c2ecf20Sopenharmony_ci u64 wait_timer : 8; 11818c2ecf20Sopenharmony_ci u64 raz1 : 6; 11828c2ecf20Sopenharmony_ci u64 cam_inval_start : 1; 11838c2ecf20Sopenharmony_ci u64 raz0 : 1; 11848c2ecf20Sopenharmony_ci#else 11858c2ecf20Sopenharmony_ci u64 raz0 : 1; 11868c2ecf20Sopenharmony_ci u64 cam_inval_start : 1; 11878c2ecf20Sopenharmony_ci u64 raz1 : 6; 11888c2ecf20Sopenharmony_ci u64 wait_timer : 8; 11898c2ecf20Sopenharmony_ci u64 raz2 : 48; 11908c2ecf20Sopenharmony_ci#endif 11918c2ecf20Sopenharmony_ci } s; 11928c2ecf20Sopenharmony_ci}; 11938c2ecf20Sopenharmony_ci 11948c2ecf20Sopenharmony_ci/** 11958c2ecf20Sopenharmony_ci * struct lbc_int_ena_w1s - LBC interrupt enable set register 11968c2ecf20Sopenharmony_ci * @cam_hard_err: Reads or sets enable for LBC_INT[CAM_HARD_ERR]. 11978c2ecf20Sopenharmony_ci * @cam_inval_abort: Reads or sets enable for LBC_INT[CAM_INVAL_ABORT]. 11988c2ecf20Sopenharmony_ci * @over_fetch_err: Reads or sets enable for LBC_INT[OVER_FETCH_ERR]. 11998c2ecf20Sopenharmony_ci * @cache_line_to_err: Reads or sets enable for 12008c2ecf20Sopenharmony_ci * LBC_INT[CACHE_LINE_TO_ERR]. 12018c2ecf20Sopenharmony_ci * @cam_soft_err: Reads or sets enable for 12028c2ecf20Sopenharmony_ci * LBC_INT[CAM_SOFT_ERR]. 12038c2ecf20Sopenharmony_ci * @dma_rd_err: Reads or sets enable for 12048c2ecf20Sopenharmony_ci * LBC_INT[DMA_RD_ERR]. 12058c2ecf20Sopenharmony_ci */ 12068c2ecf20Sopenharmony_ciunion lbc_int_ena_w1s { 12078c2ecf20Sopenharmony_ci u64 value; 12088c2ecf20Sopenharmony_ci struct { 12098c2ecf20Sopenharmony_ci#if (defined(__BIG_ENDIAN_BITFIELD)) 12108c2ecf20Sopenharmony_ci u64 raz_10_63 : 54; 12118c2ecf20Sopenharmony_ci u64 cam_hard_err : 1; 12128c2ecf20Sopenharmony_ci u64 cam_inval_abort : 1; 12138c2ecf20Sopenharmony_ci u64 over_fetch_err : 1; 12148c2ecf20Sopenharmony_ci u64 cache_line_to_err : 1; 12158c2ecf20Sopenharmony_ci u64 raz_2_5 : 4; 12168c2ecf20Sopenharmony_ci u64 cam_soft_err : 1; 12178c2ecf20Sopenharmony_ci u64 dma_rd_err : 1; 12188c2ecf20Sopenharmony_ci#else 12198c2ecf20Sopenharmony_ci u64 dma_rd_err : 1; 12208c2ecf20Sopenharmony_ci u64 cam_soft_err : 1; 12218c2ecf20Sopenharmony_ci u64 raz_2_5 : 4; 12228c2ecf20Sopenharmony_ci u64 cache_line_to_err : 1; 12238c2ecf20Sopenharmony_ci u64 over_fetch_err : 1; 12248c2ecf20Sopenharmony_ci u64 cam_inval_abort : 1; 12258c2ecf20Sopenharmony_ci u64 cam_hard_err : 1; 12268c2ecf20Sopenharmony_ci u64 raz_10_63 : 54; 12278c2ecf20Sopenharmony_ci#endif 12288c2ecf20Sopenharmony_ci } s; 12298c2ecf20Sopenharmony_ci}; 12308c2ecf20Sopenharmony_ci 12318c2ecf20Sopenharmony_ci/** 12328c2ecf20Sopenharmony_ci * struct lbc_int - LBC interrupt summary register 12338c2ecf20Sopenharmony_ci * @cam_hard_err: indicates a fatal hardware error. 12348c2ecf20Sopenharmony_ci * It requires system reset. 12358c2ecf20Sopenharmony_ci * When [CAM_HARD_ERR] is set, LBC stops logging any new information in 12368c2ecf20Sopenharmony_ci * LBC_POM_MISS_INFO_LOG, 12378c2ecf20Sopenharmony_ci * LBC_POM_MISS_ADDR_LOG, 12388c2ecf20Sopenharmony_ci * LBC_EFL_MISS_INFO_LOG, and 12398c2ecf20Sopenharmony_ci * LBC_EFL_MISS_ADDR_LOG. 12408c2ecf20Sopenharmony_ci * Software should sample them. 12418c2ecf20Sopenharmony_ci * @cam_inval_abort: indicates a fatal hardware error. 12428c2ecf20Sopenharmony_ci * System reset is required. 12438c2ecf20Sopenharmony_ci * @over_fetch_err: indicates a fatal hardware error 12448c2ecf20Sopenharmony_ci * System reset is required 12458c2ecf20Sopenharmony_ci * @cache_line_to_err: is a debug feature. 12468c2ecf20Sopenharmony_ci * This timeout interrupt bit tells the software that 12478c2ecf20Sopenharmony_ci * a cacheline in LBC has non-zero usage and the context 12488c2ecf20Sopenharmony_ci * has not been used for greater than the 12498c2ecf20Sopenharmony_ci * LBC_TO_CNT[TO_CNT] time interval. 12508c2ecf20Sopenharmony_ci * @sbe: Memory SBE error. This is recoverable via ECC. 12518c2ecf20Sopenharmony_ci * See LBC_ECC_INT for more details. 12528c2ecf20Sopenharmony_ci * @dbe: Memory DBE error. This is a fatal and requires a 12538c2ecf20Sopenharmony_ci * system reset. 12548c2ecf20Sopenharmony_ci * @pref_dat_len_mismatch_err: Summary bit for context length 12558c2ecf20Sopenharmony_ci * mismatch errors. 12568c2ecf20Sopenharmony_ci * @rd_dat_len_mismatch_err: Summary bit for SE read data length 12578c2ecf20Sopenharmony_ci * greater than data prefect length errors. 12588c2ecf20Sopenharmony_ci * @cam_soft_err: is recoverable. Software must complete a 12598c2ecf20Sopenharmony_ci * LBC_INVAL_CTL[CAM_INVAL_START] invalidation sequence and 12608c2ecf20Sopenharmony_ci * then clear [CAM_SOFT_ERR]. 12618c2ecf20Sopenharmony_ci * @dma_rd_err: A context prefect read of host memory returned with 12628c2ecf20Sopenharmony_ci * a read error. 12638c2ecf20Sopenharmony_ci */ 12648c2ecf20Sopenharmony_ciunion lbc_int { 12658c2ecf20Sopenharmony_ci u64 value; 12668c2ecf20Sopenharmony_ci struct { 12678c2ecf20Sopenharmony_ci#if (defined(__BIG_ENDIAN_BITFIELD)) 12688c2ecf20Sopenharmony_ci u64 raz_10_63 : 54; 12698c2ecf20Sopenharmony_ci u64 cam_hard_err : 1; 12708c2ecf20Sopenharmony_ci u64 cam_inval_abort : 1; 12718c2ecf20Sopenharmony_ci u64 over_fetch_err : 1; 12728c2ecf20Sopenharmony_ci u64 cache_line_to_err : 1; 12738c2ecf20Sopenharmony_ci u64 sbe : 1; 12748c2ecf20Sopenharmony_ci u64 dbe : 1; 12758c2ecf20Sopenharmony_ci u64 pref_dat_len_mismatch_err : 1; 12768c2ecf20Sopenharmony_ci u64 rd_dat_len_mismatch_err : 1; 12778c2ecf20Sopenharmony_ci u64 cam_soft_err : 1; 12788c2ecf20Sopenharmony_ci u64 dma_rd_err : 1; 12798c2ecf20Sopenharmony_ci#else 12808c2ecf20Sopenharmony_ci u64 dma_rd_err : 1; 12818c2ecf20Sopenharmony_ci u64 cam_soft_err : 1; 12828c2ecf20Sopenharmony_ci u64 rd_dat_len_mismatch_err : 1; 12838c2ecf20Sopenharmony_ci u64 pref_dat_len_mismatch_err : 1; 12848c2ecf20Sopenharmony_ci u64 dbe : 1; 12858c2ecf20Sopenharmony_ci u64 sbe : 1; 12868c2ecf20Sopenharmony_ci u64 cache_line_to_err : 1; 12878c2ecf20Sopenharmony_ci u64 over_fetch_err : 1; 12888c2ecf20Sopenharmony_ci u64 cam_inval_abort : 1; 12898c2ecf20Sopenharmony_ci u64 cam_hard_err : 1; 12908c2ecf20Sopenharmony_ci u64 raz_10_63 : 54; 12918c2ecf20Sopenharmony_ci#endif 12928c2ecf20Sopenharmony_ci } s; 12938c2ecf20Sopenharmony_ci}; 12948c2ecf20Sopenharmony_ci 12958c2ecf20Sopenharmony_ci/** 12968c2ecf20Sopenharmony_ci * struct lbc_inval_status: LBC Invalidation status register 12978c2ecf20Sopenharmony_ci * @cam_clean_entry_complete_cnt: The number of entries that are 12988c2ecf20Sopenharmony_ci * cleaned up successfully. 12998c2ecf20Sopenharmony_ci * @cam_clean_entry_cnt: The number of entries that have the CAM 13008c2ecf20Sopenharmony_ci * inval command issued. 13018c2ecf20Sopenharmony_ci * @cam_inval_state: cam invalidation FSM state 13028c2ecf20Sopenharmony_ci * @cam_inval_abort: cam invalidation abort 13038c2ecf20Sopenharmony_ci * @cam_rst_rdy: lbc_cam reset ready 13048c2ecf20Sopenharmony_ci * @done: LBC clears [DONE] when 13058c2ecf20Sopenharmony_ci * LBC_INVAL_CTL[CAM_INVAL_START] is written with a one, 13068c2ecf20Sopenharmony_ci * and sets [DONE] when it completes the invalidation 13078c2ecf20Sopenharmony_ci * sequence. 13088c2ecf20Sopenharmony_ci */ 13098c2ecf20Sopenharmony_ciunion lbc_inval_status { 13108c2ecf20Sopenharmony_ci u64 value; 13118c2ecf20Sopenharmony_ci struct { 13128c2ecf20Sopenharmony_ci#if (defined(__BIG_ENDIAN_BITFIELD)) 13138c2ecf20Sopenharmony_ci u64 raz3 : 23; 13148c2ecf20Sopenharmony_ci u64 cam_clean_entry_complete_cnt : 9; 13158c2ecf20Sopenharmony_ci u64 raz2 : 7; 13168c2ecf20Sopenharmony_ci u64 cam_clean_entry_cnt : 9; 13178c2ecf20Sopenharmony_ci u64 raz1 : 5; 13188c2ecf20Sopenharmony_ci u64 cam_inval_state : 3; 13198c2ecf20Sopenharmony_ci u64 raz0 : 5; 13208c2ecf20Sopenharmony_ci u64 cam_inval_abort : 1; 13218c2ecf20Sopenharmony_ci u64 cam_rst_rdy : 1; 13228c2ecf20Sopenharmony_ci u64 done : 1; 13238c2ecf20Sopenharmony_ci#else 13248c2ecf20Sopenharmony_ci u64 done : 1; 13258c2ecf20Sopenharmony_ci u64 cam_rst_rdy : 1; 13268c2ecf20Sopenharmony_ci u64 cam_inval_abort : 1; 13278c2ecf20Sopenharmony_ci u64 raz0 : 5; 13288c2ecf20Sopenharmony_ci u64 cam_inval_state : 3; 13298c2ecf20Sopenharmony_ci u64 raz1 : 5; 13308c2ecf20Sopenharmony_ci u64 cam_clean_entry_cnt : 9; 13318c2ecf20Sopenharmony_ci u64 raz2 : 7; 13328c2ecf20Sopenharmony_ci u64 cam_clean_entry_complete_cnt : 9; 13338c2ecf20Sopenharmony_ci u64 raz3 : 23; 13348c2ecf20Sopenharmony_ci#endif 13358c2ecf20Sopenharmony_ci } s; 13368c2ecf20Sopenharmony_ci}; 13378c2ecf20Sopenharmony_ci 13388c2ecf20Sopenharmony_ci/** 13398c2ecf20Sopenharmony_ci * struct rst_boot: RST Boot Register 13408c2ecf20Sopenharmony_ci * @jtcsrdis: when set, internal CSR access via JTAG TAP controller 13418c2ecf20Sopenharmony_ci * is disabled 13428c2ecf20Sopenharmony_ci * @jt_tst_mode: JTAG test mode 13438c2ecf20Sopenharmony_ci * @io_supply: I/O power supply setting based on IO_VDD_SELECT pin: 13448c2ecf20Sopenharmony_ci * 0x1 = 1.8V 13458c2ecf20Sopenharmony_ci * 0x2 = 2.5V 13468c2ecf20Sopenharmony_ci * 0x4 = 3.3V 13478c2ecf20Sopenharmony_ci * All other values are reserved 13488c2ecf20Sopenharmony_ci * @pnr_mul: clock multiplier 13498c2ecf20Sopenharmony_ci * @lboot: last boot cause mask, resets only with PLL_DC_OK 13508c2ecf20Sopenharmony_ci * @rboot: determines whether core 0 remains in reset after 13518c2ecf20Sopenharmony_ci * chip cold or warm or soft reset 13528c2ecf20Sopenharmony_ci * @rboot_pin: read only access to REMOTE_BOOT pin 13538c2ecf20Sopenharmony_ci */ 13548c2ecf20Sopenharmony_ciunion rst_boot { 13558c2ecf20Sopenharmony_ci u64 value; 13568c2ecf20Sopenharmony_ci struct { 13578c2ecf20Sopenharmony_ci#if (defined(__BIG_ENDIAN_BITFIELD)) 13588c2ecf20Sopenharmony_ci u64 raz_63 : 1; 13598c2ecf20Sopenharmony_ci u64 jtcsrdis : 1; 13608c2ecf20Sopenharmony_ci u64 raz_59_61 : 3; 13618c2ecf20Sopenharmony_ci u64 jt_tst_mode : 1; 13628c2ecf20Sopenharmony_ci u64 raz_40_57 : 18; 13638c2ecf20Sopenharmony_ci u64 io_supply : 3; 13648c2ecf20Sopenharmony_ci u64 raz_30_36 : 7; 13658c2ecf20Sopenharmony_ci u64 pnr_mul : 6; 13668c2ecf20Sopenharmony_ci u64 raz_12_23 : 12; 13678c2ecf20Sopenharmony_ci u64 lboot : 10; 13688c2ecf20Sopenharmony_ci u64 rboot : 1; 13698c2ecf20Sopenharmony_ci u64 rboot_pin : 1; 13708c2ecf20Sopenharmony_ci#else 13718c2ecf20Sopenharmony_ci u64 rboot_pin : 1; 13728c2ecf20Sopenharmony_ci u64 rboot : 1; 13738c2ecf20Sopenharmony_ci u64 lboot : 10; 13748c2ecf20Sopenharmony_ci u64 raz_12_23 : 12; 13758c2ecf20Sopenharmony_ci u64 pnr_mul : 6; 13768c2ecf20Sopenharmony_ci u64 raz_30_36 : 7; 13778c2ecf20Sopenharmony_ci u64 io_supply : 3; 13788c2ecf20Sopenharmony_ci u64 raz_40_57 : 18; 13798c2ecf20Sopenharmony_ci u64 jt_tst_mode : 1; 13808c2ecf20Sopenharmony_ci u64 raz_59_61 : 3; 13818c2ecf20Sopenharmony_ci u64 jtcsrdis : 1; 13828c2ecf20Sopenharmony_ci u64 raz_63 : 1; 13838c2ecf20Sopenharmony_ci#endif 13848c2ecf20Sopenharmony_ci }; 13858c2ecf20Sopenharmony_ci}; 13868c2ecf20Sopenharmony_ci 13878c2ecf20Sopenharmony_ci/** 13888c2ecf20Sopenharmony_ci * struct fus_dat1: Fuse Data 1 Register 13898c2ecf20Sopenharmony_ci * @pll_mul: main clock PLL multiplier hardware limit 13908c2ecf20Sopenharmony_ci * @pll_half_dis: main clock PLL control 13918c2ecf20Sopenharmony_ci * @efus_lck: efuse lockdown 13928c2ecf20Sopenharmony_ci * @zip_info: ZIP information 13938c2ecf20Sopenharmony_ci * @bar2_sz_conf: when zero, BAR2 size conforms to 13948c2ecf20Sopenharmony_ci * PCIe specification 13958c2ecf20Sopenharmony_ci * @efus_ign: efuse ignore 13968c2ecf20Sopenharmony_ci * @nozip: ZIP disable 13978c2ecf20Sopenharmony_ci * @pll_alt_matrix: select alternate PLL matrix 13988c2ecf20Sopenharmony_ci * @pll_bwadj_denom: select CLKF denominator for 13998c2ecf20Sopenharmony_ci * BWADJ value 14008c2ecf20Sopenharmony_ci * @chip_id: chip ID 14018c2ecf20Sopenharmony_ci */ 14028c2ecf20Sopenharmony_ciunion fus_dat1 { 14038c2ecf20Sopenharmony_ci u64 value; 14048c2ecf20Sopenharmony_ci struct { 14058c2ecf20Sopenharmony_ci#if (defined(__BIG_ENDIAN_BITFIELD)) 14068c2ecf20Sopenharmony_ci u64 raz_57_63 : 7; 14078c2ecf20Sopenharmony_ci u64 pll_mul : 3; 14088c2ecf20Sopenharmony_ci u64 pll_half_dis : 1; 14098c2ecf20Sopenharmony_ci u64 raz_43_52 : 10; 14108c2ecf20Sopenharmony_ci u64 efus_lck : 3; 14118c2ecf20Sopenharmony_ci u64 raz_26_39 : 14; 14128c2ecf20Sopenharmony_ci u64 zip_info : 5; 14138c2ecf20Sopenharmony_ci u64 bar2_sz_conf : 1; 14148c2ecf20Sopenharmony_ci u64 efus_ign : 1; 14158c2ecf20Sopenharmony_ci u64 nozip : 1; 14168c2ecf20Sopenharmony_ci u64 raz_11_17 : 7; 14178c2ecf20Sopenharmony_ci u64 pll_alt_matrix : 1; 14188c2ecf20Sopenharmony_ci u64 pll_bwadj_denom : 2; 14198c2ecf20Sopenharmony_ci u64 chip_id : 8; 14208c2ecf20Sopenharmony_ci#else 14218c2ecf20Sopenharmony_ci u64 chip_id : 8; 14228c2ecf20Sopenharmony_ci u64 pll_bwadj_denom : 2; 14238c2ecf20Sopenharmony_ci u64 pll_alt_matrix : 1; 14248c2ecf20Sopenharmony_ci u64 raz_11_17 : 7; 14258c2ecf20Sopenharmony_ci u64 nozip : 1; 14268c2ecf20Sopenharmony_ci u64 efus_ign : 1; 14278c2ecf20Sopenharmony_ci u64 bar2_sz_conf : 1; 14288c2ecf20Sopenharmony_ci u64 zip_info : 5; 14298c2ecf20Sopenharmony_ci u64 raz_26_39 : 14; 14308c2ecf20Sopenharmony_ci u64 efus_lck : 3; 14318c2ecf20Sopenharmony_ci u64 raz_43_52 : 10; 14328c2ecf20Sopenharmony_ci u64 pll_half_dis : 1; 14338c2ecf20Sopenharmony_ci u64 pll_mul : 3; 14348c2ecf20Sopenharmony_ci u64 raz_57_63 : 7; 14358c2ecf20Sopenharmony_ci#endif 14368c2ecf20Sopenharmony_ci }; 14378c2ecf20Sopenharmony_ci}; 14388c2ecf20Sopenharmony_ci 14398c2ecf20Sopenharmony_ci#endif /* __NITROX_CSR_H */ 1440