#ifndef __BDK_CSRS_IOBN_H__ #define __BDK_CSRS_IOBN_H__ /* This file is auto-generated. Do not edit */ /***********************license start*************** * Copyright (c) 2003-2017 Cavium Inc. (support@cavium.com). All rights * reserved. * * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. * * Neither the name of Cavium Inc. nor the names of * its contributors may be used to endorse or promote products * derived from this software without specific prior written * permission. * This Software, including technical data, may be subject to U.S. export control * laws, including the U.S. Export Administration Act and its associated * regulations, and may be subject to export or import regulations in other * countries. * TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS" * AND WITH ALL FAULTS AND CAVIUM NETWORKS MAKES NO PROMISES, REPRESENTATIONS OR * WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH RESPECT TO * THE SOFTWARE, INCLUDING ITS CONDITION, ITS CONFORMITY TO ANY REPRESENTATION OR * DESCRIPTION, OR THE EXISTENCE OF ANY LATENT OR PATENT DEFECTS, AND CAVIUM * SPECIFICALLY DISCLAIMS ALL IMPLIED (IF ANY) WARRANTIES OF TITLE, * MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR A PARTICULAR PURPOSE, LACK OF * VIRUSES, ACCURACY OR COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR * CORRESPONDENCE TO DESCRIPTION. THE ENTIRE RISK ARISING OUT OF USE OR * PERFORMANCE OF THE SOFTWARE LIES WITH YOU. ***********************license end**************************************/ /** * @file * * Configuration and status register (CSR) address and type definitions for * Cavium IOBN. * * This file is auto generated. Do not edit. * */ /** * Enumeration iobn_bar_e * * IOBN Base Address Register Enumeration * Enumerates the base address registers. */ #define BDK_IOBN_BAR_E_IOBNX_PF_BAR0_CN8(a) (0x87e0f0000000ll + 0x1000000ll * (a)) #define BDK_IOBN_BAR_E_IOBNX_PF_BAR0_CN8_SIZE 0x800000ull #define BDK_IOBN_BAR_E_IOBNX_PF_BAR0_CN9(a) (0x87e0f0000000ll + 0x1000000ll * (a)) #define BDK_IOBN_BAR_E_IOBNX_PF_BAR0_CN9_SIZE 0x100000ull #define BDK_IOBN_BAR_E_IOBNX_PF_BAR4(a) (0x87e0f0f00000ll + 0x1000000ll * (a)) #define BDK_IOBN_BAR_E_IOBNX_PF_BAR4_SIZE 0x100000ull /** * Enumeration iobn_int_vec_e * * IOBN MSI-X Vector Enumeration * Enumerates the MSI-X interrupt vectors. */ #define BDK_IOBN_INT_VEC_E_INTS (0) #define BDK_IOBN_INT_VEC_E_INTS1 (1) /** * Enumeration iobn_ncbi_ro_mod_e * * IOBN NCBI Relax Order Modification Enumeration * Enumerates the controls for when CR's are allowed to pass PRs, see * IOBN()_ARBID()_CTL[CRPPR_ENA]. */ #define BDK_IOBN_NCBI_RO_MOD_E_BUS_CTL (0) #define BDK_IOBN_NCBI_RO_MOD_E_OFF (2) #define BDK_IOBN_NCBI_RO_MOD_E_ON (3) #define BDK_IOBN_NCBI_RO_MOD_E_RSVD (1) /** * Enumeration iobn_psb_acc_e * * IOBN Power Serial Bus Accumulator Enumeration * Enumerates the IOB accumulators for IOB slaves, which correspond to index {b} of * PSBS_SYS()_ACCUM(). */ #define BDK_IOBN_PSB_ACC_E_NCBI_RD_CMD_ACTIVE (0) #define BDK_IOBN_PSB_ACC_E_NCBI_WR_CMD_ACTIVE (1) #define BDK_IOBN_PSB_ACC_E_NCBO_CMD_ACTIVE (2) /** * Enumeration iobn_psb_event_e * * IOBN Power Serial Bus Event Enumeration * Enumerates the event numbers for IOB slaves, which correspond to index {b} of * PSBS_SYS()_EVENT()_CFG. */ #define BDK_IOBN_PSB_EVENT_E_NCBI_CMD_ACTIVE_BUS0 (8) #define BDK_IOBN_PSB_EVENT_E_NCBI_CMD_ACTIVE_BUS1 (9) #define BDK_IOBN_PSB_EVENT_E_NCBI_CMD_ACTIVE_BUS2 (0xa) #define BDK_IOBN_PSB_EVENT_E_NCBI_CMD_ACTIVE_BUS_RSV0 (0xb) #define BDK_IOBN_PSB_EVENT_E_NCBI_DATA_ACTIVE_BUS0 (0xc) #define BDK_IOBN_PSB_EVENT_E_NCBI_DATA_ACTIVE_BUS1 (0xd) #define BDK_IOBN_PSB_EVENT_E_NCBI_DATA_ACTIVE_BUS2 (0xe) #define BDK_IOBN_PSB_EVENT_E_NCBI_DATA_ACTIVE_BUS_RSV0 (0xf) #define BDK_IOBN_PSB_EVENT_E_NCBI_RD_CMD_ACTIVE_BUS0 (0) #define BDK_IOBN_PSB_EVENT_E_NCBI_RD_CMD_ACTIVE_BUS1 (1) #define BDK_IOBN_PSB_EVENT_E_NCBI_RD_CMD_ACTIVE_BUS2 (2) #define BDK_IOBN_PSB_EVENT_E_NCBI_RD_CMD_ACTIVE_BUS_RSV0 (3) #define BDK_IOBN_PSB_EVENT_E_NCBI_WR_CMD_ACTIVE_BUS0 (4) #define BDK_IOBN_PSB_EVENT_E_NCBI_WR_CMD_ACTIVE_BUS1 (5) #define BDK_IOBN_PSB_EVENT_E_NCBI_WR_CMD_ACTIVE_BUS2 (6) #define BDK_IOBN_PSB_EVENT_E_NCBI_WR_CMD_ACTIVE_BUS_RSV0 (7) #define BDK_IOBN_PSB_EVENT_E_NCBO_CMD_ACTIVE_BUS0 (0x10) #define BDK_IOBN_PSB_EVENT_E_NCBO_CMD_ACTIVE_BUS1 (0x11) #define BDK_IOBN_PSB_EVENT_E_NCBO_CMD_ACTIVE_BUS2 (0x12) #define BDK_IOBN_PSB_EVENT_E_NCBO_CMD_ACTIVE_BUS_RSV0 (0x13) #define BDK_IOBN_PSB_EVENT_E_NCBO_DATA_ACTIVE_BUS0 (0x14) #define BDK_IOBN_PSB_EVENT_E_NCBO_DATA_ACTIVE_BUS1 (0x15) #define BDK_IOBN_PSB_EVENT_E_NCBO_DATA_ACTIVE_BUS2 (0x16) #define BDK_IOBN_PSB_EVENT_E_NCBO_DATA_ACTIVE_BUS_RSV0 (0x17) /** * Register (RSL) iobn#_arbid#_ctl * * IOBN NCB Constant Registers * This register set properties for each of the flat ARBIDs. */ union bdk_iobnx_arbidx_ctl { uint64_t u; struct bdk_iobnx_arbidx_ctl_s { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_10_63 : 54; uint64_t fast_ord : 1; /**< [ 9: 9](R/W) When set IOB will send commits for PR's to IOW as soon as PR is sent to mesh, rather than waiting for ordering. This bit should only be set for non-PEM devices */ uint64_t sow_dis : 1; /**< [ 8: 8](R/W) Disables the PCIe store widget for memory store performance. Does not affect observable ordering. No impact on IO stores. For diagnostic use only. 0 = Performance optimization on. Issue prefetches on stores to improve store-store ordering. 1 = Performance optimization off. No prefetches. Internal: The SOW is only available on the NCB2/256b devices which include PEMs, CPT, DPI. The expectation is that CPT and DPI use the RelaxOrder bit so they will only use the widget when the VA address CAM detects and promotes two transactions to the same memory cacheline. */ uint64_t crppr_ena : 2; /**< [ 7: 6](R/W) Controls when a CR is allowed to pass a PR for NCBO and NCBI. Enumerated by IOBN_NCBI_RO_MOD_E. */ uint64_t prefetch_dis : 1; /**< [ 5: 5](R/W) Disables mesh prefetches. For diagnostic use only. 0 = Store-store ordered transactions will issue prefetches before the second store to improve performance. 1 = No prefetches. */ uint64_t pr_iova_dis : 1; /**< [ 4: 4](R/W) PR queue IOVA comparison disable. For diagnostic use only. 0 = PR will not pass a younger PR with the same IOVA. 1 = PR may pass a younger PR with the same IOVA, if the relaxed ordering request and [RO_DIS] bit allow it. */ uint64_t ro_dis : 1; /**< [ 3: 3](R/W) Disable relaxed ordering. For diagnostic use only. 0 = Relaxed ordering is performed if the NCB device requests it. 1 = IOB ignores the relaxed ordering request bit and treats all requests as strictly ordered. */ uint64_t st_ld_ord : 1; /**< [ 2: 2](R/W) If enabled, NP queue loaded in order it arrives from NCBI. [ST_ST_ORD] should also be set when this bit is set. NP queue will not pass PS queue. Internal: FIXME check meaning */ uint64_t st_st_ord : 1; /**< [ 1: 1](R/W) If enabled, PS queue used (ignore RO bit). Placed in order store arrives. Internal: FIXME check meaning */ uint64_t ld_ld_ord : 1; /**< [ 0: 0](R/W) Load-load ordering. For diagnostic use only. 0 = NPR may pass NPR under some cases. The ordering is based on SMMU completion ordering. 1 = NPR never passes NPR; the NPR ordering is based strictly on NCB arrival order. This may harm performance. */ #else /* Word 0 - Little Endian */ uint64_t ld_ld_ord : 1; /**< [ 0: 0](R/W) Load-load ordering. For diagnostic use only. 0 = NPR may pass NPR under some cases. The ordering is based on SMMU completion ordering. 1 = NPR never passes NPR; the NPR ordering is based strictly on NCB arrival order. This may harm performance. */ uint64_t st_st_ord : 1; /**< [ 1: 1](R/W) If enabled, PS queue used (ignore RO bit). Placed in order store arrives. Internal: FIXME check meaning */ uint64_t st_ld_ord : 1; /**< [ 2: 2](R/W) If enabled, NP queue loaded in order it arrives from NCBI. [ST_ST_ORD] should also be set when this bit is set. NP queue will not pass PS queue. Internal: FIXME check meaning */ uint64_t ro_dis : 1; /**< [ 3: 3](R/W) Disable relaxed ordering. For diagnostic use only. 0 = Relaxed ordering is performed if the NCB device requests it. 1 = IOB ignores the relaxed ordering request bit and treats all requests as strictly ordered. */ uint64_t pr_iova_dis : 1; /**< [ 4: 4](R/W) PR queue IOVA comparison disable. For diagnostic use only. 0 = PR will not pass a younger PR with the same IOVA. 1 = PR may pass a younger PR with the same IOVA, if the relaxed ordering request and [RO_DIS] bit allow it. */ uint64_t prefetch_dis : 1; /**< [ 5: 5](R/W) Disables mesh prefetches. For diagnostic use only. 0 = Store-store ordered transactions will issue prefetches before the second store to improve performance. 1 = No prefetches. */ uint64_t crppr_ena : 2; /**< [ 7: 6](R/W) Controls when a CR is allowed to pass a PR for NCBO and NCBI. Enumerated by IOBN_NCBI_RO_MOD_E. */ uint64_t sow_dis : 1; /**< [ 8: 8](R/W) Disables the PCIe store widget for memory store performance. Does not affect observable ordering. No impact on IO stores. For diagnostic use only. 0 = Performance optimization on. Issue prefetches on stores to improve store-store ordering. 1 = Performance optimization off. No prefetches. Internal: The SOW is only available on the NCB2/256b devices which include PEMs, CPT, DPI. The expectation is that CPT and DPI use the RelaxOrder bit so they will only use the widget when the VA address CAM detects and promotes two transactions to the same memory cacheline. */ uint64_t fast_ord : 1; /**< [ 9: 9](R/W) When set IOB will send commits for PR's to IOW as soon as PR is sent to mesh, rather than waiting for ordering. This bit should only be set for non-PEM devices */ uint64_t reserved_10_63 : 54; #endif /* Word 0 - End */ } s; /* struct bdk_iobnx_arbidx_ctl_s cn; */ }; typedef union bdk_iobnx_arbidx_ctl bdk_iobnx_arbidx_ctl_t; static inline uint64_t BDK_IOBNX_ARBIDX_CTL(unsigned long a, unsigned long b) __attribute__ ((pure, always_inline)); static inline uint64_t BDK_IOBNX_ARBIDX_CTL(unsigned long a, unsigned long b) { if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX) && ((a<=1) && (b<=19))) return 0x87e0f0002100ll + 0x1000000ll * ((a) & 0x1) + 8ll * ((b) & 0x1f); __bdk_csr_fatal("IOBNX_ARBIDX_CTL", 2, a, b, 0, 0); } #define typedef_BDK_IOBNX_ARBIDX_CTL(a,b) bdk_iobnx_arbidx_ctl_t #define bustype_BDK_IOBNX_ARBIDX_CTL(a,b) BDK_CSR_TYPE_RSL #define basename_BDK_IOBNX_ARBIDX_CTL(a,b) "IOBNX_ARBIDX_CTL" #define device_bar_BDK_IOBNX_ARBIDX_CTL(a,b) 0x0 /* PF_BAR0 */ #define busnum_BDK_IOBNX_ARBIDX_CTL(a,b) (a) #define arguments_BDK_IOBNX_ARBIDX_CTL(a,b) (a),(b),-1,-1 /** * Register (RSL) iobn#_bistr_reg * * IOBN BIST Status Register * This register contains the result of the BIST run on the IOB rclk memories. */ union bdk_iobnx_bistr_reg { uint64_t u; struct bdk_iobnx_bistr_reg_s { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_22_63 : 42; uint64_t status : 22; /**< [ 21: 0](RO/H) Memory BIST status. Internal: \<18\> = gmr_ixofifo_bstatus_rclk. \<17\> = sli_preq_2_ffifo_bstatus_rclk. \<16\> = sli_req_2_ffifo_bstatus_rclk. \<15\> = sli_preq_1_ffifo_bstatus_rclk. \<14\> = sli_req_1_ffifo_bstatus_rclk. \<13\> = sli_preq_0_ffifo_bstatus_rclk. \<12\> = sli_req_0_ffifo_bstatus_rclk. \<11\> = iop_ffifo_bstatus_rclk. \<10\> = ixo_icc_fifo0_bstatus_rclk. \<9\> = ixo_icc_fifo1_bstatus_rclk. \<8\> = ixo_ics_mem_bstatus_rclk. \<7\> = iob_mem_data_xmd0_bstatus_rclk. \<6\> = iob_mem_data_xmd1_bstatus_rclk. \<5\> = ics_cmd_fifo_bstatus_rclk. \<4\> = ixo_xmd_mem0_bstatus_rclk. \<3\> = ixo_xmd_mem1_bstatus_rclk. \<2\> = iobn_iorn_ffifo0_bstatus_rclk. \<1\> = iobn_iorn_ffifo1_bstatus_rclk. \<0\> = ixo_smmu_mem0_bstatus_rclk. */ #else /* Word 0 - Little Endian */ uint64_t status : 22; /**< [ 21: 0](RO/H) Memory BIST status. Internal: \<18\> = gmr_ixofifo_bstatus_rclk. \<17\> = sli_preq_2_ffifo_bstatus_rclk. \<16\> = sli_req_2_ffifo_bstatus_rclk. \<15\> = sli_preq_1_ffifo_bstatus_rclk. \<14\> = sli_req_1_ffifo_bstatus_rclk. \<13\> = sli_preq_0_ffifo_bstatus_rclk. \<12\> = sli_req_0_ffifo_bstatus_rclk. \<11\> = iop_ffifo_bstatus_rclk. \<10\> = ixo_icc_fifo0_bstatus_rclk. \<9\> = ixo_icc_fifo1_bstatus_rclk. \<8\> = ixo_ics_mem_bstatus_rclk. \<7\> = iob_mem_data_xmd0_bstatus_rclk. \<6\> = iob_mem_data_xmd1_bstatus_rclk. \<5\> = ics_cmd_fifo_bstatus_rclk. \<4\> = ixo_xmd_mem0_bstatus_rclk. \<3\> = ixo_xmd_mem1_bstatus_rclk. \<2\> = iobn_iorn_ffifo0_bstatus_rclk. \<1\> = iobn_iorn_ffifo1_bstatus_rclk. \<0\> = ixo_smmu_mem0_bstatus_rclk. */ uint64_t reserved_22_63 : 42; #endif /* Word 0 - End */ } s; struct bdk_iobnx_bistr_reg_cn81xx { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_19_63 : 45; uint64_t status : 19; /**< [ 18: 0](RO/H) Memory BIST status. Internal: \<18\> = gmr_ixofifo_bstatus_rclk. \<17\> = sli_preq_2_ffifo_bstatus_rclk. \<16\> = sli_req_2_ffifo_bstatus_rclk. \<15\> = sli_preq_1_ffifo_bstatus_rclk. \<14\> = sli_req_1_ffifo_bstatus_rclk. \<13\> = sli_preq_0_ffifo_bstatus_rclk. \<12\> = sli_req_0_ffifo_bstatus_rclk. \<11\> = iop_ffifo_bstatus_rclk. \<10\> = ixo_icc_fifo0_bstatus_rclk. \<9\> = ixo_icc_fifo1_bstatus_rclk. \<8\> = ixo_ics_mem_bstatus_rclk. \<7\> = iob_mem_data_xmd0_bstatus_rclk. \<6\> = 0 unused. \<5\> = ics_cmd_fifo_bstatus_rclk. \<4\> = ixo_xmd_mem0_bstatus_rclk. \<3\> = ixo_xmd_mem1_bstatus_rclk. \<2\> = iobn_iorn_ffifo0_bstatus_rclk. \<1\> = iobn_iorn_ffifo1_bstatus_rclk. \<0\> = ixo_smmu_mem0_bstatus_rclk. */ #else /* Word 0 - Little Endian */ uint64_t status : 19; /**< [ 18: 0](RO/H) Memory BIST status. Internal: \<18\> = gmr_ixofifo_bstatus_rclk. \<17\> = sli_preq_2_ffifo_bstatus_rclk. \<16\> = sli_req_2_ffifo_bstatus_rclk. \<15\> = sli_preq_1_ffifo_bstatus_rclk. \<14\> = sli_req_1_ffifo_bstatus_rclk. \<13\> = sli_preq_0_ffifo_bstatus_rclk. \<12\> = sli_req_0_ffifo_bstatus_rclk. \<11\> = iop_ffifo_bstatus_rclk. \<10\> = ixo_icc_fifo0_bstatus_rclk. \<9\> = ixo_icc_fifo1_bstatus_rclk. \<8\> = ixo_ics_mem_bstatus_rclk. \<7\> = iob_mem_data_xmd0_bstatus_rclk. \<6\> = 0 unused. \<5\> = ics_cmd_fifo_bstatus_rclk. \<4\> = ixo_xmd_mem0_bstatus_rclk. \<3\> = ixo_xmd_mem1_bstatus_rclk. \<2\> = iobn_iorn_ffifo0_bstatus_rclk. \<1\> = iobn_iorn_ffifo1_bstatus_rclk. \<0\> = ixo_smmu_mem0_bstatus_rclk. */ uint64_t reserved_19_63 : 45; #endif /* Word 0 - End */ } cn81xx; struct bdk_iobnx_bistr_reg_cn88xx { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_19_63 : 45; uint64_t status : 19; /**< [ 18: 0](RO/H) Memory BIST status. Internal: \<18\> = gmr_ixofifo_bstatus_rclk. \<17\> = sli_preq_2_ffifo_bstatus_rclk. \<16\> = sli_req_2_ffifo_bstatus_rclk. \<15\> = sli_preq_1_ffifo_bstatus_rclk. \<14\> = sli_req_1_ffifo_bstatus_rclk. \<13\> = sli_preq_0_ffifo_bstatus_rclk. \<12\> = sli_req_0_ffifo_bstatus_rclk. \<11\> = iop_ffifo_bstatus_rclk. \<10\> = ixo_icc_fifo0_bstatus_rclk. \<9\> = ixo_icc_fifo1_bstatus_rclk. \<8\> = ixo_ics_mem_bstatus_rclk. \<7\> = iob_mem_data_xmd0_bstatus_rclk. \<6\> = iob_mem_data_xmd1_bstatus_rclk. \<5\> = ics_cmd_fifo_bstatus_rclk. \<4\> = ixo_xmd_mem0_bstatus_rclk. \<3\> = ixo_xmd_mem1_bstatus_rclk. \<2\> = iobn_iorn_ffifo0_bstatus_rclk. \<1\> = iobn_iorn_ffifo1_bstatus_rclk. \<0\> = ixo_smmu_mem0_bstatus_rclk. */ #else /* Word 0 - Little Endian */ uint64_t status : 19; /**< [ 18: 0](RO/H) Memory BIST status. Internal: \<18\> = gmr_ixofifo_bstatus_rclk. \<17\> = sli_preq_2_ffifo_bstatus_rclk. \<16\> = sli_req_2_ffifo_bstatus_rclk. \<15\> = sli_preq_1_ffifo_bstatus_rclk. \<14\> = sli_req_1_ffifo_bstatus_rclk. \<13\> = sli_preq_0_ffifo_bstatus_rclk. \<12\> = sli_req_0_ffifo_bstatus_rclk. \<11\> = iop_ffifo_bstatus_rclk. \<10\> = ixo_icc_fifo0_bstatus_rclk. \<9\> = ixo_icc_fifo1_bstatus_rclk. \<8\> = ixo_ics_mem_bstatus_rclk. \<7\> = iob_mem_data_xmd0_bstatus_rclk. \<6\> = iob_mem_data_xmd1_bstatus_rclk. \<5\> = ics_cmd_fifo_bstatus_rclk. \<4\> = ixo_xmd_mem0_bstatus_rclk. \<3\> = ixo_xmd_mem1_bstatus_rclk. \<2\> = iobn_iorn_ffifo0_bstatus_rclk. \<1\> = iobn_iorn_ffifo1_bstatus_rclk. \<0\> = ixo_smmu_mem0_bstatus_rclk. */ uint64_t reserved_19_63 : 45; #endif /* Word 0 - End */ } cn88xx; struct bdk_iobnx_bistr_reg_cn83xx { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_22_63 : 42; uint64_t status : 22; /**< [ 21: 0](RO/H) Memory BIST status. Internal: \<21\> = gmr_sli_ixofifo_bstatus_rclk. \<20\> = sli_preq_2_ffifo_bstatus_rclk. \<19\> = sli_req_2_ffifo_bstatus_rclk. \<18\> = gmr_ixofifo_bstatus_rclk. \<17\> = sli_preq_2_ffifo_bstatus_rclk. \<16\> = sli_req_2_ffifo_bstatus_rclk. \<15\> = sli_preq_1_ffifo_bstatus_rclk. \<14\> = sli_req_1_ffifo_bstatus_rclk. \<13\> = sli_preq_0_ffifo_bstatus_rclk. \<12\> = sli_req_0_ffifo_bstatus_rclk. \<11\> = iop_ffifo_bstatus_rclk. \<10\> = ixo_icc_fifo0_bstatus_rclk. \<9\> = ixo_icc_fifo1_bstatus_rclk. \<8\> = ixo_ics_mem_bstatus_rclk. \<7\> = iob_mem_data_xmd0_bstatus_rclk. \<6\> = iob_mem_data_xmd1_bstatus_rclk. \<5\> = ics_cmd_fifo_bstatus_rclk. \<4\> = ixo_xmd_mem0_bstatus_rclk. \<3\> = ixo_xmd_mem1_bstatus_rclk. \<2\> = iobn_iorn_ffifo0_bstatus_rclk. \<1\> = iobn_iorn_ffifo1_bstatus_rclk. \<0\> = ixo_smmu_mem0_bstatus_rclk. */ #else /* Word 0 - Little Endian */ uint64_t status : 22; /**< [ 21: 0](RO/H) Memory BIST status. Internal: \<21\> = gmr_sli_ixofifo_bstatus_rclk. \<20\> = sli_preq_2_ffifo_bstatus_rclk. \<19\> = sli_req_2_ffifo_bstatus_rclk. \<18\> = gmr_ixofifo_bstatus_rclk. \<17\> = sli_preq_2_ffifo_bstatus_rclk. \<16\> = sli_req_2_ffifo_bstatus_rclk. \<15\> = sli_preq_1_ffifo_bstatus_rclk. \<14\> = sli_req_1_ffifo_bstatus_rclk. \<13\> = sli_preq_0_ffifo_bstatus_rclk. \<12\> = sli_req_0_ffifo_bstatus_rclk. \<11\> = iop_ffifo_bstatus_rclk. \<10\> = ixo_icc_fifo0_bstatus_rclk. \<9\> = ixo_icc_fifo1_bstatus_rclk. \<8\> = ixo_ics_mem_bstatus_rclk. \<7\> = iob_mem_data_xmd0_bstatus_rclk. \<6\> = iob_mem_data_xmd1_bstatus_rclk. \<5\> = ics_cmd_fifo_bstatus_rclk. \<4\> = ixo_xmd_mem0_bstatus_rclk. \<3\> = ixo_xmd_mem1_bstatus_rclk. \<2\> = iobn_iorn_ffifo0_bstatus_rclk. \<1\> = iobn_iorn_ffifo1_bstatus_rclk. \<0\> = ixo_smmu_mem0_bstatus_rclk. */ uint64_t reserved_22_63 : 42; #endif /* Word 0 - End */ } cn83xx; }; typedef union bdk_iobnx_bistr_reg bdk_iobnx_bistr_reg_t; static inline uint64_t BDK_IOBNX_BISTR_REG(unsigned long a) __attribute__ ((pure, always_inline)); static inline uint64_t BDK_IOBNX_BISTR_REG(unsigned long a) { if (CAVIUM_IS_MODEL(CAVIUM_CN81XX) && (a==0)) return 0x87e0f0005080ll + 0x1000000ll * ((a) & 0x0); if (CAVIUM_IS_MODEL(CAVIUM_CN83XX) && (a<=1)) return 0x87e0f0005080ll + 0x1000000ll * ((a) & 0x1); if (CAVIUM_IS_MODEL(CAVIUM_CN88XX) && (a<=1)) return 0x87e0f0005080ll + 0x1000000ll * ((a) & 0x1); __bdk_csr_fatal("IOBNX_BISTR_REG", 1, a, 0, 0, 0); } #define typedef_BDK_IOBNX_BISTR_REG(a) bdk_iobnx_bistr_reg_t #define bustype_BDK_IOBNX_BISTR_REG(a) BDK_CSR_TYPE_RSL #define basename_BDK_IOBNX_BISTR_REG(a) "IOBNX_BISTR_REG" #define device_bar_BDK_IOBNX_BISTR_REG(a) 0x0 /* PF_BAR0 */ #define busnum_BDK_IOBNX_BISTR_REG(a) (a) #define arguments_BDK_IOBNX_BISTR_REG(a) (a),-1,-1,-1 /** * Register (RSL) iobn#_bists_reg * * IOBN BIST Status Register * This register contains the result of the BIST run on the IOB sclk memories. */ union bdk_iobnx_bists_reg { uint64_t u; struct bdk_iobnx_bists_reg_s { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_11_63 : 53; uint64_t status : 11; /**< [ 10: 0](RO/H) Memory BIST status. Internal: \<10\> = irp0_flid_mem_status. \<9\> = irp1_flid_mem_status. \<8\> = icc0_xmc_fifo_ecc_bstatus. \<7\> = icc1_xmc_fifo_ecc_bstatus. \<6\> = icc_xmc_fifo_ecc_bstatus. \<5\> = rsd_mem0_bstatus. \<4\> = rsd_mem1_bstatus. \<3\> = iop_breq_fifo0_bstatus. \<2\> = iop_breq_fifo1_bstatus. \<1\> = iop_breq_fifo2_bstatus. \<0\> = iop_breq_fifo3_bstatus. */ #else /* Word 0 - Little Endian */ uint64_t status : 11; /**< [ 10: 0](RO/H) Memory BIST status. Internal: \<10\> = irp0_flid_mem_status. \<9\> = irp1_flid_mem_status. \<8\> = icc0_xmc_fifo_ecc_bstatus. \<7\> = icc1_xmc_fifo_ecc_bstatus. \<6\> = icc_xmc_fifo_ecc_bstatus. \<5\> = rsd_mem0_bstatus. \<4\> = rsd_mem1_bstatus. \<3\> = iop_breq_fifo0_bstatus. \<2\> = iop_breq_fifo1_bstatus. \<1\> = iop_breq_fifo2_bstatus. \<0\> = iop_breq_fifo3_bstatus. */ uint64_t reserved_11_63 : 53; #endif /* Word 0 - End */ } s; struct bdk_iobnx_bists_reg_cn81xx { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_11_63 : 53; uint64_t status : 11; /**< [ 10: 0](RO/H) Memory BIST status. Internal: \<10\> = irp0_flid_mem_status. \<9\> = 0. \<8\> = icc0_xmc_fifo_ecc_bstatus. \<7\> = 0 unused. \<6\> = icc_xmc_fifo_ecc_bstatus. \<5\> = rsd_mem0_bstatus. \<4\> = 0 un used \<3\> = iop_breq_fifo0_bstatus. \<2\> = 0 Unused \<1\> = iop_breq_fifo2_bstatus. \<0\> = iop_breq_fifo3_bstatus. */ #else /* Word 0 - Little Endian */ uint64_t status : 11; /**< [ 10: 0](RO/H) Memory BIST status. Internal: \<10\> = irp0_flid_mem_status. \<9\> = 0. \<8\> = icc0_xmc_fifo_ecc_bstatus. \<7\> = 0 unused. \<6\> = icc_xmc_fifo_ecc_bstatus. \<5\> = rsd_mem0_bstatus. \<4\> = 0 un used \<3\> = iop_breq_fifo0_bstatus. \<2\> = 0 Unused \<1\> = iop_breq_fifo2_bstatus. \<0\> = iop_breq_fifo3_bstatus. */ uint64_t reserved_11_63 : 53; #endif /* Word 0 - End */ } cn81xx; /* struct bdk_iobnx_bists_reg_s cn88xx; */ /* struct bdk_iobnx_bists_reg_s cn83xx; */ }; typedef union bdk_iobnx_bists_reg bdk_iobnx_bists_reg_t; static inline uint64_t BDK_IOBNX_BISTS_REG(unsigned long a) __attribute__ ((pure, always_inline)); static inline uint64_t BDK_IOBNX_BISTS_REG(unsigned long a) { if (CAVIUM_IS_MODEL(CAVIUM_CN81XX) && (a==0)) return 0x87e0f0005000ll + 0x1000000ll * ((a) & 0x0); if (CAVIUM_IS_MODEL(CAVIUM_CN83XX) && (a<=1)) return 0x87e0f0005000ll + 0x1000000ll * ((a) & 0x1); if (CAVIUM_IS_MODEL(CAVIUM_CN88XX) && (a<=1)) return 0x87e0f0005000ll + 0x1000000ll * ((a) & 0x1); __bdk_csr_fatal("IOBNX_BISTS_REG", 1, a, 0, 0, 0); } #define typedef_BDK_IOBNX_BISTS_REG(a) bdk_iobnx_bists_reg_t #define bustype_BDK_IOBNX_BISTS_REG(a) BDK_CSR_TYPE_RSL #define basename_BDK_IOBNX_BISTS_REG(a) "IOBNX_BISTS_REG" #define device_bar_BDK_IOBNX_BISTS_REG(a) 0x0 /* PF_BAR0 */ #define busnum_BDK_IOBNX_BISTS_REG(a) (a) #define arguments_BDK_IOBNX_BISTS_REG(a) (a),-1,-1,-1 /** * Register (RSL) iobn#_bp_test# * * INTERNAL: IOBN Backpressure Test Registers */ union bdk_iobnx_bp_testx { uint64_t u; struct bdk_iobnx_bp_testx_s { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t enable : 8; /**< [ 63: 56](R/W) Enable test mode. For diagnostic use only. Internal: Once a bit is set, random backpressure is generated at the corresponding point to allow for more frequent backpressure. IOBN()_BP_TEST(0) - INRF: Defined by iobn_defs::inrf_bp_test_t \<63\> = TBD. \<62\> = TBD. \<61\> = TBD. \<60\> = TBD. \<59\> = TBD. \<58\> = TBD. \<57\> = TBD. \<56\> = TBD. IOBN()_BP_TEST(1) - INRM: Defined by iobn_defs::inrm_bp_test_t \<63\> = Stall CMT processing for outbound LBK transactions \<62\> = Stall CMT processing for outbound MSH transactions \<61\> = omp_vcc_ret. \<60\> = imi_dat_fif - Backpressure VCC return counters(OMP) \<59\> = TBD. \<58\> = TBD. \<57\> = TBD. \<56\> = TBD. IOBN()_BP_TEST(2) - INRF: Defined by iobn_defs::inrf_bp_test_t \<63\> = TBD. \<62\> = TBD. \<61\> = TBD. \<60\> = TBD. \<59\> = TBD. \<58\> = TBD. \<57\> = TBD. \<56\> = TBD. IOBN()_BP_TEST(3) - INRF: Defined by iobn_defs::inrm_bp_test_t \<63\> = VCC - Victim DAT. \<62\> = VCC - Victim REQ (CMD). \<61\> = VCC - DAT (REQ/REQH). \<60\> = VCC - CMD (REQ/RQH). \<59\> = SLC - VCC. \<58\> = SLC - ACK. \<57\> = SLC - DAT. \<56\> = SLC - CMD. */ uint64_t reserved_32_55 : 24; uint64_t bp_cfg : 16; /**< [ 31: 16](R/W) Backpressure weight. For diagnostic use only. Internal: There are 2 backpressure configuration bits per enable, with the two bits defined as 0x0=100% of the time, 0x1=75% of the time, 0x2=50% of the time, 0x3=25% of the time. \<31:30\> = Config 7. \<29:28\> = Config 6. \<27:26\> = Config 5. \<25:24\> = Config 4. \<23:22\> = Config 3. \<21:20\> = Config 2. \<19:18\> = Config 1. \<17:16\> = Config 0. */ uint64_t reserved_12_15 : 4; uint64_t lfsr_freq : 12; /**< [ 11: 0](R/W) Test LFSR update frequency in coprocessor-clocks minus one. */ #else /* Word 0 - Little Endian */ uint64_t lfsr_freq : 12; /**< [ 11: 0](R/W) Test LFSR update frequency in coprocessor-clocks minus one. */ uint64_t reserved_12_15 : 4; uint64_t bp_cfg : 16; /**< [ 31: 16](R/W) Backpressure weight. For diagnostic use only. Internal: There are 2 backpressure configuration bits per enable, with the two bits defined as 0x0=100% of the time, 0x1=75% of the time, 0x2=50% of the time, 0x3=25% of the time. \<31:30\> = Config 7. \<29:28\> = Config 6. \<27:26\> = Config 5. \<25:24\> = Config 4. \<23:22\> = Config 3. \<21:20\> = Config 2. \<19:18\> = Config 1. \<17:16\> = Config 0. */ uint64_t reserved_32_55 : 24; uint64_t enable : 8; /**< [ 63: 56](R/W) Enable test mode. For diagnostic use only. Internal: Once a bit is set, random backpressure is generated at the corresponding point to allow for more frequent backpressure. IOBN()_BP_TEST(0) - INRF: Defined by iobn_defs::inrf_bp_test_t \<63\> = TBD. \<62\> = TBD. \<61\> = TBD. \<60\> = TBD. \<59\> = TBD. \<58\> = TBD. \<57\> = TBD. \<56\> = TBD. IOBN()_BP_TEST(1) - INRM: Defined by iobn_defs::inrm_bp_test_t \<63\> = Stall CMT processing for outbound LBK transactions \<62\> = Stall CMT processing for outbound MSH transactions \<61\> = omp_vcc_ret. \<60\> = imi_dat_fif - Backpressure VCC return counters(OMP) \<59\> = TBD. \<58\> = TBD. \<57\> = TBD. \<56\> = TBD. IOBN()_BP_TEST(2) - INRF: Defined by iobn_defs::inrf_bp_test_t \<63\> = TBD. \<62\> = TBD. \<61\> = TBD. \<60\> = TBD. \<59\> = TBD. \<58\> = TBD. \<57\> = TBD. \<56\> = TBD. IOBN()_BP_TEST(3) - INRF: Defined by iobn_defs::inrm_bp_test_t \<63\> = VCC - Victim DAT. \<62\> = VCC - Victim REQ (CMD). \<61\> = VCC - DAT (REQ/REQH). \<60\> = VCC - CMD (REQ/RQH). \<59\> = SLC - VCC. \<58\> = SLC - ACK. \<57\> = SLC - DAT. \<56\> = SLC - CMD. */ #endif /* Word 0 - End */ } s; /* struct bdk_iobnx_bp_testx_s cn; */ }; typedef union bdk_iobnx_bp_testx bdk_iobnx_bp_testx_t; static inline uint64_t BDK_IOBNX_BP_TESTX(unsigned long a, unsigned long b) __attribute__ ((pure, always_inline)); static inline uint64_t BDK_IOBNX_BP_TESTX(unsigned long a, unsigned long b) { if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX) && ((a<=1) && (b<=3))) return 0x87e0f0003800ll + 0x1000000ll * ((a) & 0x1) + 8ll * ((b) & 0x3); __bdk_csr_fatal("IOBNX_BP_TESTX", 2, a, b, 0, 0); } #define typedef_BDK_IOBNX_BP_TESTX(a,b) bdk_iobnx_bp_testx_t #define bustype_BDK_IOBNX_BP_TESTX(a,b) BDK_CSR_TYPE_RSL #define basename_BDK_IOBNX_BP_TESTX(a,b) "IOBNX_BP_TESTX" #define device_bar_BDK_IOBNX_BP_TESTX(a,b) 0x0 /* PF_BAR0 */ #define busnum_BDK_IOBNX_BP_TESTX(a,b) (a) #define arguments_BDK_IOBNX_BP_TESTX(a,b) (a),(b),-1,-1 /** * Register (RSL) iobn#_cfg0 * * IOBN General Configuration 0 Register */ union bdk_iobnx_cfg0 { uint64_t u; struct bdk_iobnx_cfg0_s { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_5_63 : 59; uint64_t force_gibm_ncbi_clk_en : 1; /**< [ 4: 4](R/W) Force on GIBM NCBI clocks. For diagnostic use only. */ uint64_t force_immx_sclk_cond_clk_en : 1;/**< [ 3: 3](R/W) Force on IMMX clocks. For diagnostic use only. */ uint64_t force_inrm_sclk_cond_clk_en : 1;/**< [ 2: 2](R/W) Force on INRM clocks. For diagnostic use only. */ uint64_t force_inrf_sclk_cond_clk_en : 1;/**< [ 1: 1](R/W) Force on INRF clocks. For diagnostic use only. */ uint64_t force_ins_sclk_cond_clk_en : 1;/**< [ 0: 0](R/W) Force on INS clocks. For diagnostic use only. */ #else /* Word 0 - Little Endian */ uint64_t force_ins_sclk_cond_clk_en : 1;/**< [ 0: 0](R/W) Force on INS clocks. For diagnostic use only. */ uint64_t force_inrf_sclk_cond_clk_en : 1;/**< [ 1: 1](R/W) Force on INRF clocks. For diagnostic use only. */ uint64_t force_inrm_sclk_cond_clk_en : 1;/**< [ 2: 2](R/W) Force on INRM clocks. For diagnostic use only. */ uint64_t force_immx_sclk_cond_clk_en : 1;/**< [ 3: 3](R/W) Force on IMMX clocks. For diagnostic use only. */ uint64_t force_gibm_ncbi_clk_en : 1; /**< [ 4: 4](R/W) Force on GIBM NCBI clocks. For diagnostic use only. */ uint64_t reserved_5_63 : 59; #endif /* Word 0 - End */ } s; /* struct bdk_iobnx_cfg0_s cn; */ }; typedef union bdk_iobnx_cfg0 bdk_iobnx_cfg0_t; static inline uint64_t BDK_IOBNX_CFG0(unsigned long a) __attribute__ ((pure, always_inline)); static inline uint64_t BDK_IOBNX_CFG0(unsigned long a) { if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX) && (a<=1)) return 0x87e0f0002000ll + 0x1000000ll * ((a) & 0x1); __bdk_csr_fatal("IOBNX_CFG0", 1, a, 0, 0, 0); } #define typedef_BDK_IOBNX_CFG0(a) bdk_iobnx_cfg0_t #define bustype_BDK_IOBNX_CFG0(a) BDK_CSR_TYPE_RSL #define basename_BDK_IOBNX_CFG0(a) "IOBNX_CFG0" #define device_bar_BDK_IOBNX_CFG0(a) 0x0 /* PF_BAR0 */ #define busnum_BDK_IOBNX_CFG0(a) (a) #define arguments_BDK_IOBNX_CFG0(a) (a),-1,-1,-1 /** * Register (RSL) iobn#_cfg1 * * IOBN General Configuration 1 Register */ union bdk_iobnx_cfg1 { uint64_t u; struct bdk_iobnx_cfg1_s { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_3_63 : 61; uint64_t force_immx_rclk_cond_clk_en : 1;/**< [ 2: 2](R/W) For debug only. Must be zero during normal operation. Internal: Force the conditional clock active */ uint64_t force_inrm_rclk_cond_clk_en : 1;/**< [ 1: 1](R/W) For debug only. Must be zero during normal operation. Internal: Force the conditional clock active */ uint64_t force_inrf_rclk_cond_clk_en : 1;/**< [ 0: 0](R/W) For debug only. Must be zero during normal operation. Internal: Force the conditional clock active */ #else /* Word 0 - Little Endian */ uint64_t force_inrf_rclk_cond_clk_en : 1;/**< [ 0: 0](R/W) For debug only. Must be zero during normal operation. Internal: Force the conditional clock active */ uint64_t force_inrm_rclk_cond_clk_en : 1;/**< [ 1: 1](R/W) For debug only. Must be zero during normal operation. Internal: Force the conditional clock active */ uint64_t force_immx_rclk_cond_clk_en : 1;/**< [ 2: 2](R/W) For debug only. Must be zero during normal operation. Internal: Force the conditional clock active */ uint64_t reserved_3_63 : 61; #endif /* Word 0 - End */ } s; /* struct bdk_iobnx_cfg1_s cn; */ }; typedef union bdk_iobnx_cfg1 bdk_iobnx_cfg1_t; static inline uint64_t BDK_IOBNX_CFG1(unsigned long a) __attribute__ ((pure, always_inline)); static inline uint64_t BDK_IOBNX_CFG1(unsigned long a) { if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX) && (a<=1)) return 0x87e0f0002010ll + 0x1000000ll * ((a) & 0x1); __bdk_csr_fatal("IOBNX_CFG1", 1, a, 0, 0, 0); } #define typedef_BDK_IOBNX_CFG1(a) bdk_iobnx_cfg1_t #define bustype_BDK_IOBNX_CFG1(a) BDK_CSR_TYPE_RSL #define basename_BDK_IOBNX_CFG1(a) "IOBNX_CFG1" #define device_bar_BDK_IOBNX_CFG1(a) 0x0 /* PF_BAR0 */ #define busnum_BDK_IOBNX_CFG1(a) (a) #define arguments_BDK_IOBNX_CFG1(a) (a),-1,-1,-1 /** * Register (RSL) iobn#_chip_cur_pwr * * INTERNAL: IOBN Chip Current Power Register * * For diagnostic use only. * This register contains the current power setting. * Only index zero (IOB(0)) is used. */ union bdk_iobnx_chip_cur_pwr { uint64_t u; struct bdk_iobnx_chip_cur_pwr_s { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_8_63 : 56; uint64_t current_power_setting : 8; /**< [ 7: 0](RO/H) Global throttling value currently being used. Throttling can force units (CPU cores, in particular) idle for a portion of time, which will reduce power consumption. When [CURRENT_POWER_SETTING] is equal to zero, the unit is idle most of the time and consumes minimum power. When [CURRENT_POWER_SETTING] is equal to 0xFF, units are never idled to reduce power. The hardware generally uses a [CURRENT_POWER_SETTING] value that is as large as possible (in order to maximize performance) subject to the following constraints (in priority order): * PWR_MIN \<= [CURRENT_POWER_SETTING] \<= PWR_MAX. * Power limits from the PWR_SETTING feedback control system. In the case of the CPU cores, [CURRENT_POWER_SETTING] effectively limits the CP0 PowThrottle[POWLIM] value: effective POWLIM = MINIMUM([CURRENT_POWER_SETTING], PowThrottle[POWLIM]) */ #else /* Word 0 - Little Endian */ uint64_t current_power_setting : 8; /**< [ 7: 0](RO/H) Global throttling value currently being used. Throttling can force units (CPU cores, in particular) idle for a portion of time, which will reduce power consumption. When [CURRENT_POWER_SETTING] is equal to zero, the unit is idle most of the time and consumes minimum power. When [CURRENT_POWER_SETTING] is equal to 0xFF, units are never idled to reduce power. The hardware generally uses a [CURRENT_POWER_SETTING] value that is as large as possible (in order to maximize performance) subject to the following constraints (in priority order): * PWR_MIN \<= [CURRENT_POWER_SETTING] \<= PWR_MAX. * Power limits from the PWR_SETTING feedback control system. In the case of the CPU cores, [CURRENT_POWER_SETTING] effectively limits the CP0 PowThrottle[POWLIM] value: effective POWLIM = MINIMUM([CURRENT_POWER_SETTING], PowThrottle[POWLIM]) */ uint64_t reserved_8_63 : 56; #endif /* Word 0 - End */ } s; /* struct bdk_iobnx_chip_cur_pwr_s cn; */ }; typedef union bdk_iobnx_chip_cur_pwr bdk_iobnx_chip_cur_pwr_t; static inline uint64_t BDK_IOBNX_CHIP_CUR_PWR(unsigned long a) __attribute__ ((pure, always_inline)); static inline uint64_t BDK_IOBNX_CHIP_CUR_PWR(unsigned long a) { if (CAVIUM_IS_MODEL(CAVIUM_CN81XX) && (a==0)) return 0x87e0f000a110ll + 0x1000000ll * ((a) & 0x0); if (CAVIUM_IS_MODEL(CAVIUM_CN83XX) && (a<=1)) return 0x87e0f000a110ll + 0x1000000ll * ((a) & 0x1); if (CAVIUM_IS_MODEL(CAVIUM_CN88XX) && (a<=1)) return 0x87e0f000a110ll + 0x1000000ll * ((a) & 0x1); __bdk_csr_fatal("IOBNX_CHIP_CUR_PWR", 1, a, 0, 0, 0); } #define typedef_BDK_IOBNX_CHIP_CUR_PWR(a) bdk_iobnx_chip_cur_pwr_t #define bustype_BDK_IOBNX_CHIP_CUR_PWR(a) BDK_CSR_TYPE_RSL #define basename_BDK_IOBNX_CHIP_CUR_PWR(a) "IOBNX_CHIP_CUR_PWR" #define device_bar_BDK_IOBNX_CHIP_CUR_PWR(a) 0x0 /* PF_BAR0 */ #define busnum_BDK_IOBNX_CHIP_CUR_PWR(a) (a) #define arguments_BDK_IOBNX_CHIP_CUR_PWR(a) (a),-1,-1,-1 /** * Register (RSL) iobn#_chip_glb_pwr_throttle * * INTERNAL: IOBN Chip Global Power Throttle Register * * For diagnostic use only. * This register controls the min/max power settings. * Only index zero (IOB(0)) is used. */ union bdk_iobnx_chip_glb_pwr_throttle { uint64_t u; struct bdk_iobnx_chip_glb_pwr_throttle_s { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_34_63 : 30; uint64_t pwr_bw : 2; /**< [ 33: 32](R/W) Configures the reaction time of the closed-loop feedback control system for the AVG_CHIP_POWER power approximation. Higher numbers decrease bandwidth, reducing response time, which could lead to greater tracking error, but reduce ringing. */ uint64_t pwr_max : 8; /**< [ 31: 24](R/W) Reserved. */ uint64_t pwr_min : 8; /**< [ 23: 16](R/W) Reserved. */ uint64_t pwr_setting : 16; /**< [ 15: 0](R/W) A power limiter for the chip. A limiter of the power consumption of the chip. This power limiting is implemented by a closed-loop feedback control system for the AVG_CHIP_POWER power approximation. The direct output of the [PWR_SETTING] feedback control system is the CURRENT_POWER_SETTING value. The power consumed by the chip (estimated currently by the AVG_CHIP_POWER value) is an indirect output of the PWR_SETTING feedback control system. [PWR_SETTING] is not used by the hardware when [PWR_MIN] equals [PWR_MAX]. [PWR_MIN] and [PWR_MAX] threshold requirements always supersede [PWR_SETTING] limits. (For maximum [PWR_SETTING] feedback control freedom, set [PWR_MIN]=0 and [PWR_MAX]=0xff.) [PWR_SETTING] equal to 0 forces the chip to consume near minimum power. Increasing [PWR_SETTING] value from 0 to 0xFFFF increases the power that the chip is allowed to consume linearly (roughly) from minimum to maximum. */ #else /* Word 0 - Little Endian */ uint64_t pwr_setting : 16; /**< [ 15: 0](R/W) A power limiter for the chip. A limiter of the power consumption of the chip. This power limiting is implemented by a closed-loop feedback control system for the AVG_CHIP_POWER power approximation. The direct output of the [PWR_SETTING] feedback control system is the CURRENT_POWER_SETTING value. The power consumed by the chip (estimated currently by the AVG_CHIP_POWER value) is an indirect output of the PWR_SETTING feedback control system. [PWR_SETTING] is not used by the hardware when [PWR_MIN] equals [PWR_MAX]. [PWR_MIN] and [PWR_MAX] threshold requirements always supersede [PWR_SETTING] limits. (For maximum [PWR_SETTING] feedback control freedom, set [PWR_MIN]=0 and [PWR_MAX]=0xff.) [PWR_SETTING] equal to 0 forces the chip to consume near minimum power. Increasing [PWR_SETTING] value from 0 to 0xFFFF increases the power that the chip is allowed to consume linearly (roughly) from minimum to maximum. */ uint64_t pwr_min : 8; /**< [ 23: 16](R/W) Reserved. */ uint64_t pwr_max : 8; /**< [ 31: 24](R/W) Reserved. */ uint64_t pwr_bw : 2; /**< [ 33: 32](R/W) Configures the reaction time of the closed-loop feedback control system for the AVG_CHIP_POWER power approximation. Higher numbers decrease bandwidth, reducing response time, which could lead to greater tracking error, but reduce ringing. */ uint64_t reserved_34_63 : 30; #endif /* Word 0 - End */ } s; /* struct bdk_iobnx_chip_glb_pwr_throttle_s cn; */ }; typedef union bdk_iobnx_chip_glb_pwr_throttle bdk_iobnx_chip_glb_pwr_throttle_t; static inline uint64_t BDK_IOBNX_CHIP_GLB_PWR_THROTTLE(unsigned long a) __attribute__ ((pure, always_inline)); static inline uint64_t BDK_IOBNX_CHIP_GLB_PWR_THROTTLE(unsigned long a) { if (CAVIUM_IS_MODEL(CAVIUM_CN81XX) && (a==0)) return 0x87e0f000a100ll + 0x1000000ll * ((a) & 0x0); if (CAVIUM_IS_MODEL(CAVIUM_CN83XX) && (a<=1)) return 0x87e0f000a100ll + 0x1000000ll * ((a) & 0x1); if (CAVIUM_IS_MODEL(CAVIUM_CN88XX) && (a<=1)) return 0x87e0f000a100ll + 0x1000000ll * ((a) & 0x1); __bdk_csr_fatal("IOBNX_CHIP_GLB_PWR_THROTTLE", 1, a, 0, 0, 0); } #define typedef_BDK_IOBNX_CHIP_GLB_PWR_THROTTLE(a) bdk_iobnx_chip_glb_pwr_throttle_t #define bustype_BDK_IOBNX_CHIP_GLB_PWR_THROTTLE(a) BDK_CSR_TYPE_RSL #define basename_BDK_IOBNX_CHIP_GLB_PWR_THROTTLE(a) "IOBNX_CHIP_GLB_PWR_THROTTLE" #define device_bar_BDK_IOBNX_CHIP_GLB_PWR_THROTTLE(a) 0x0 /* PF_BAR0 */ #define busnum_BDK_IOBNX_CHIP_GLB_PWR_THROTTLE(a) (a) #define arguments_BDK_IOBNX_CHIP_GLB_PWR_THROTTLE(a) (a),-1,-1,-1 /** * Register (RSL) iobn#_chip_pwr_out * * IOBN Chip Power Out Register * This register contains power numbers from the various partitions on the chip. * Only index zero (IOB(0)) is used. */ union bdk_iobnx_chip_pwr_out { uint64_t u; struct bdk_iobnx_chip_pwr_out_s { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t cpu_pwr : 16; /**< [ 63: 48](RO/H) An estimate of the current CPU core complex power consumption, including a sum of all processor's AP_CVM_POWER_EL1[AVERAGE_POWER]. The CPU core complex includes the caches and DRAM controller(s), as well as all CPU cores. Linearly larger values indicate linearly higher power consumption. */ uint64_t chip_power : 16; /**< [ 47: 32](RO/H) An estimate of the current total power consumption by the chip. Linearly larger values indicate linearly higher power consumption. [CHIP_POWER] is the sum of [CPU_PWR] and [COPROC_POWER]. */ uint64_t coproc_power : 16; /**< [ 31: 16](RO/H) An estimate of the current coprocessor power consumption. Linearly larger values indicate linearly higher power consumption. This estimate is energy per core clock, and will generally decrease as the ratio of core to coprocessor clock speed increases. */ uint64_t avg_chip_power : 16; /**< [ 15: 0](RO/H) Average chip power. An average of [CHIP_POWER], calculated using an IIR filter with an average weight of 16K core clocks, in mA/GHz. Accurate power numbers should be calculated using a platform-specific method which e.g. reads the current consumption of the VRM. Otherwise an approximation of this chip's power is calculated with: _ power = chip_const + core_const * cores_powered_on + [AVG_CHIP_POWER] * voltage Where: _ power is in mW. _ chip_const is in mW and represents the I/O power and chip excluding core_const. This may vary as I/O and coprocessor loads vary, therefore only platform methods can be used for accurate estimates. _ core_const is a per-core constant leakage from the HRM power application note, and is in mA. _ cores_powered_on is a population count of all bits set in RST_PP_POWER. _ voltage is determined by the platform, perhaps by reading a VRM setting. */ #else /* Word 0 - Little Endian */ uint64_t avg_chip_power : 16; /**< [ 15: 0](RO/H) Average chip power. An average of [CHIP_POWER], calculated using an IIR filter with an average weight of 16K core clocks, in mA/GHz. Accurate power numbers should be calculated using a platform-specific method which e.g. reads the current consumption of the VRM. Otherwise an approximation of this chip's power is calculated with: _ power = chip_const + core_const * cores_powered_on + [AVG_CHIP_POWER] * voltage Where: _ power is in mW. _ chip_const is in mW and represents the I/O power and chip excluding core_const. This may vary as I/O and coprocessor loads vary, therefore only platform methods can be used for accurate estimates. _ core_const is a per-core constant leakage from the HRM power application note, and is in mA. _ cores_powered_on is a population count of all bits set in RST_PP_POWER. _ voltage is determined by the platform, perhaps by reading a VRM setting. */ uint64_t coproc_power : 16; /**< [ 31: 16](RO/H) An estimate of the current coprocessor power consumption. Linearly larger values indicate linearly higher power consumption. This estimate is energy per core clock, and will generally decrease as the ratio of core to coprocessor clock speed increases. */ uint64_t chip_power : 16; /**< [ 47: 32](RO/H) An estimate of the current total power consumption by the chip. Linearly larger values indicate linearly higher power consumption. [CHIP_POWER] is the sum of [CPU_PWR] and [COPROC_POWER]. */ uint64_t cpu_pwr : 16; /**< [ 63: 48](RO/H) An estimate of the current CPU core complex power consumption, including a sum of all processor's AP_CVM_POWER_EL1[AVERAGE_POWER]. The CPU core complex includes the caches and DRAM controller(s), as well as all CPU cores. Linearly larger values indicate linearly higher power consumption. */ #endif /* Word 0 - End */ } s; /* struct bdk_iobnx_chip_pwr_out_s cn; */ }; typedef union bdk_iobnx_chip_pwr_out bdk_iobnx_chip_pwr_out_t; static inline uint64_t BDK_IOBNX_CHIP_PWR_OUT(unsigned long a) __attribute__ ((pure, always_inline)); static inline uint64_t BDK_IOBNX_CHIP_PWR_OUT(unsigned long a) { if (CAVIUM_IS_MODEL(CAVIUM_CN81XX) && (a==0)) return 0x87e0f000a108ll + 0x1000000ll * ((a) & 0x0); if (CAVIUM_IS_MODEL(CAVIUM_CN83XX) && (a<=1)) return 0x87e0f000a108ll + 0x1000000ll * ((a) & 0x1); if (CAVIUM_IS_MODEL(CAVIUM_CN88XX) && (a<=1)) return 0x87e0f000a108ll + 0x1000000ll * ((a) & 0x1); __bdk_csr_fatal("IOBNX_CHIP_PWR_OUT", 1, a, 0, 0, 0); } #define typedef_BDK_IOBNX_CHIP_PWR_OUT(a) bdk_iobnx_chip_pwr_out_t #define bustype_BDK_IOBNX_CHIP_PWR_OUT(a) BDK_CSR_TYPE_RSL #define basename_BDK_IOBNX_CHIP_PWR_OUT(a) "IOBNX_CHIP_PWR_OUT" #define device_bar_BDK_IOBNX_CHIP_PWR_OUT(a) 0x0 /* PF_BAR0 */ #define busnum_BDK_IOBNX_CHIP_PWR_OUT(a) (a) #define arguments_BDK_IOBNX_CHIP_PWR_OUT(a) (a),-1,-1,-1 /** * Register (RSL) iobn#_cond_clk_cap# * * INTERNAL: IOBN Conditional Clock Capacitance Register * * This register is for diagnostic use only. * Internal: * Each index corresponds to a different net as follows: * 0 = bgx0___bgx___bgx_clk___csclk_drv. * 1 = bgx0___bgx___bgx_clk___ssclk_drv. * 2 = bgx0___bgx___bgx_clk___gsclk_drv. * 3 = bgx1___bgx___bgx_clk___csclk_drv. * 4 = bgx1___bgx___bgx_clk___ssclk_drv. * 5 = bgx1___bgx___bgx_clk___gsclk_drv. * 6 = bgx2___bgx___bgx_clk___csclk_drv. * 7 = bgx2___bgx___bgx_clk___ssclk_drv. * 8 = bgx2___bgx___bgx_clk___gsclk_drv. * 9 = bgx3___bgx___bgx_clk___csclk_drv. * 10 = bgx3___bgx___bgx_clk___ssclk_drv. * 11 = bgx3___bgx___bgx_clk___gsclk_drv. * 12 = dpi___dpi___csclk_drv. * 13 = fpa___fpa___gbl___csclk_drv. * 14 = lbk___lbk___lbk_core_p0x0___csclk_drv. * 15 = lbk___lbk___lbk_core_p0x1___csclk_drv. * 16 = lbk___lbk___lbk_core_p1x0___csclk_drv. * 17 = lbk___lbk___lbk_core_p1x1___csclk_drv. * 18 = mio___mio___uaa0___u_csclk_drv. * 19 = mio___mio___uaa1___u_csclk_drv. * 20 = mio___mio___uaa2___u_csclk_drv. * 21 = mio___mio___uaa3___u_csclk_drv. * 22 = nic___nic___nic_l___nic_l1___nic_clk___csclk_drv. * 23 = nic___nic___nic_l___nic_l2___nic_clk___csclk_drv. * 24 = nic___nic___nic_u___nic_u1___nic_clk___csclk_drv. * 25 = pem0___pem___pem_clks___csclk_drv. * 26 = pem0___pem___pem_clks___sync_pwr_thr_pclk. * 27 = pem1___pem___pem_clks___csclk_drv. * 28 = pem1___pem___pem_clks___sync_pwr_thr_pclk. * 29 = pem2___pem___pem_clks___csclk_drv. * 30 = pem2___pem___pem_clks___sync_pwr_thr_pclk. * 31 = pem3___pem___pem_clks___csclk_drv. * 32 = pem3___pem___pem_clks___sync_pwr_thr_pclk. * 33 = pki___pki___pdp___pfe___csclk_drv. * 34 = pki___pki___pdp___pbe___csclk_drv. * 35 = pki___pki___pix___ipec0___csclk_drv. * 36 = pki___pki___pix___ipec1___csclk_drv. * 37 = pki___pki___pix___mech___csclk_drv. * 38 = roc_ocla___roc_ocla___core___clks___csclk_drv. * 39 = rst___rst___mio_clk_ctl___csclk_drv. * 40 = sata0___sata___u_csclk_drv. * 41 = sata0___sata___u_csclk_drv. * 42 = sata0___sata___u_csclk_drv. * 43 = sata0___sata___u_csclk_drv. * 44 = sata0___sata___u_csclk_drv. * 45 = sata0___sata___u_csclk_drv. * 46 = smmu___smmu___wcsr___gbl___crclk_drv. * 47 = smmu___smmu___wcsr___gbl___u_c2rclk_drv. * 48 = smmu___smmu___wcsr___gbl___u_c2rclk_drv_n. * 49 = smmu___smmu___xl___ctl___crclk_drv. * 50 = sso___sso___sso_pnr___sso_aw___clk___csclk_drv. * 51 = sso___sso___sso_pnr___sso_gw___clk___csclk_drv. * 52 = sso___sso___sso_pnr___sso_ws___clk___csclk_drv. * 53 = usbdrd0___usbdrd_i___u_csclk_drv. * 54 = usbdrd0___usbdrd_i___u_csclk_drv. * 55 = zipc0___zipc___zipc_clk___zip_hash_csclk_drv. * 56 = zipc0___zipc___zipc_clk___zip_history_csclk_drv. * 57 = zipc0___zipc___zipc_clk___zip_state_csclk_drv. * 58 = zipc0___zipc___zipc_clk___zip_sha_csclk_drv. * 59 = zipc1___zipc___zipc_clk___zip_hash_csclk_drv. * 60 = zipc1___zipc___zipc_clk___zip_history_csclk_drv. * 61 = zipc1___zipc___zipc_clk___zip_state_csclk_drv. * 62 = zipc1___zipc___zipc_clk___zip_sha_csclk_drv. * 63 = zipc2___zipc___zipc_clk___zip_hash_csclk_drv. * 64 = zipc2___zipc___zipc_clk___zip_history_csclk_drv. * 65 = zipc2___zipc___zipc_clk___zip_state_csclk_drv. * 66 = zipc2___zipc___zipc_clk___zip_sha_csclk_drv. * 67 = zipd3___zipd___zipd_clk___zip_history_csclk_drv. * 68 = zipd3___zipd___zipd_clk___zip_state_csclk_drv. * 69 = zipd3___zipd___zipd_clk___zip_sha_csclk_drv. * 70 = zipd4___zipd___zipd_clk___zip_history_csclk_drv. * 71 = zipd4___zipd___zipd_clk___zip_state_csclk_drv. * 72 = zipd4___zipd___zipd_clk___zip_sha_csclk_drv. * 73 = zipd5___zipd___zipd_clk___zip_history_csclk_drv. * 74 = zipd5___zipd___zipd_clk___zip_state_csclk_drv. * 75 = zipd5___zipd___zipd_clk___zip_sha_csclk_drv. */ union bdk_iobnx_cond_clk_capx { uint64_t u; struct bdk_iobnx_cond_clk_capx_s { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_16_63 : 48; uint64_t cap : 16; /**< [ 15: 0](R/W) Conditional clock capacitance for drivers. (cap value * 0.9/128.) For diagnostic use only. */ #else /* Word 0 - Little Endian */ uint64_t cap : 16; /**< [ 15: 0](R/W) Conditional clock capacitance for drivers. (cap value * 0.9/128.) For diagnostic use only. */ uint64_t reserved_16_63 : 48; #endif /* Word 0 - End */ } s; /* struct bdk_iobnx_cond_clk_capx_s cn; */ }; typedef union bdk_iobnx_cond_clk_capx bdk_iobnx_cond_clk_capx_t; static inline uint64_t BDK_IOBNX_COND_CLK_CAPX(unsigned long a, unsigned long b) __attribute__ ((pure, always_inline)); static inline uint64_t BDK_IOBNX_COND_CLK_CAPX(unsigned long a, unsigned long b) { if (CAVIUM_IS_MODEL(CAVIUM_CN83XX) && ((a<=1) && (b<=75))) return 0x87e0f000f000ll + 0x1000000ll * ((a) & 0x1) + 8ll * ((b) & 0x7f); __bdk_csr_fatal("IOBNX_COND_CLK_CAPX", 2, a, b, 0, 0); } #define typedef_BDK_IOBNX_COND_CLK_CAPX(a,b) bdk_iobnx_cond_clk_capx_t #define bustype_BDK_IOBNX_COND_CLK_CAPX(a,b) BDK_CSR_TYPE_RSL #define basename_BDK_IOBNX_COND_CLK_CAPX(a,b) "IOBNX_COND_CLK_CAPX" #define device_bar_BDK_IOBNX_COND_CLK_CAPX(a,b) 0x0 /* PF_BAR0 */ #define busnum_BDK_IOBNX_COND_CLK_CAPX(a,b) (a) #define arguments_BDK_IOBNX_COND_CLK_CAPX(a,b) (a),(b),-1,-1 /** * Register (RSL) iobn#_const * * IOBN Constant Registers * This register returns discovery information. */ union bdk_iobnx_const { uint64_t u; struct bdk_iobnx_const_s { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_24_63 : 40; uint64_t arbs : 8; /**< [ 23: 16](RO) Maximum number of grants on any NCB bus attached to this IOB. */ uint64_t ncbs : 8; /**< [ 15: 8](RO) Number of physical NCB busses attached to this IOB. */ uint64_t iobs : 8; /**< [ 7: 0](RO) Number of IOBs. */ #else /* Word 0 - Little Endian */ uint64_t iobs : 8; /**< [ 7: 0](RO) Number of IOBs. */ uint64_t ncbs : 8; /**< [ 15: 8](RO) Number of physical NCB busses attached to this IOB. */ uint64_t arbs : 8; /**< [ 23: 16](RO) Maximum number of grants on any NCB bus attached to this IOB. */ uint64_t reserved_24_63 : 40; #endif /* Word 0 - End */ } s; /* struct bdk_iobnx_const_s cn; */ }; typedef union bdk_iobnx_const bdk_iobnx_const_t; static inline uint64_t BDK_IOBNX_CONST(unsigned long a) __attribute__ ((pure, always_inline)); static inline uint64_t BDK_IOBNX_CONST(unsigned long a) { if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX) && (a<=1)) return 0x87e0f0000000ll + 0x1000000ll * ((a) & 0x1); __bdk_csr_fatal("IOBNX_CONST", 1, a, 0, 0, 0); } #define typedef_BDK_IOBNX_CONST(a) bdk_iobnx_const_t #define bustype_BDK_IOBNX_CONST(a) BDK_CSR_TYPE_RSL #define basename_BDK_IOBNX_CONST(a) "IOBNX_CONST" #define device_bar_BDK_IOBNX_CONST(a) 0x0 /* PF_BAR0 */ #define busnum_BDK_IOBNX_CONST(a) (a) #define arguments_BDK_IOBNX_CONST(a) (a),-1,-1,-1 /** * Register (RSL) iobn#_core_bist_status * * IOBN Cores BIST Status Register * This register contains the result of the BIST run on the cores. */ union bdk_iobnx_core_bist_status { uint64_t u; struct bdk_iobnx_core_bist_status_s { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_24_63 : 40; uint64_t core_bstat : 24; /**< [ 23: 0](RO/H) BIST status of the cores. IOBN0 contains the BIST status for the even numbered cores and IOBN1 contains the BIST status for the odd numbered cores. \
BIT IOBN0 IOBN0 MASK BIT IOBN1 IOBN1 MASK BIT [0] Core 0 \<0\> Core 1 \<1\> [1] Core 2 \<2\> Core 3 \<3\> ... [23] Core 46 \<46\> Core 47 \<47\> \Software must logically AND CORE_BSTAT bits with appropriate bits from RST_PP_AVAILABLE before using them. The "IOBN0 MASK BIT" column in the table above shows the RST_PP_AVAILABLE bits to use with IOBN0. The "IOBN1 MASK BIT" column in the table above shows the RST_PP_AVAILABLE bits to use with IOBN1. */ #else /* Word 0 - Little Endian */ uint64_t core_bstat : 24; /**< [ 23: 0](RO/H) BIST status of the cores. IOBN0 contains the BIST status for the even numbered cores and IOBN1 contains the BIST status for the odd numbered cores. \
BIT IOBN0 IOBN0 MASK BIT IOBN1 IOBN1 MASK BIT [0] Core 0 \<0\> Core 1 \<1\> [1] Core 2 \<2\> Core 3 \<3\> ... [23] Core 46 \<46\> Core 47 \<47\> \Software must logically AND CORE_BSTAT bits with appropriate bits from RST_PP_AVAILABLE before using them. The "IOBN0 MASK BIT" column in the table above shows the RST_PP_AVAILABLE bits to use with IOBN0. The "IOBN1 MASK BIT" column in the table above shows the RST_PP_AVAILABLE bits to use with IOBN1. */ uint64_t reserved_24_63 : 40; #endif /* Word 0 - End */ } s; struct bdk_iobnx_core_bist_status_cn81xx { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_4_63 : 60; uint64_t core_bstat : 4; /**< [ 3: 0](RO/H) BIST status of the cores. IOBN0 contains the BIST status for the even numbered cores and IOBN1 contains the BIST status for the odd numbered cores. \
BIT IOBN [0] Core 0 [1] Core 1 [2] Core 2 [3] Core 3 \Software must bit-wise logical AND CORE_BSTAT with RST_PP_AVAILABLE before using it. */ #else /* Word 0 - Little Endian */ uint64_t core_bstat : 4; /**< [ 3: 0](RO/H) BIST status of the cores. IOBN0 contains the BIST status for the even numbered cores and IOBN1 contains the BIST status for the odd numbered cores. \
BIT IOBN [0] Core 0 [1] Core 1 [2] Core 2 [3] Core 3 \Software must bit-wise logical AND CORE_BSTAT with RST_PP_AVAILABLE before using it. */ uint64_t reserved_4_63 : 60; #endif /* Word 0 - End */ } cn81xx; /* struct bdk_iobnx_core_bist_status_s cn88xx; */ struct bdk_iobnx_core_bist_status_cn83xx { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_24_63 : 40; uint64_t core_bstat : 24; /**< [ 23: 0](RO/H) BIST status of the cores. IOBN0 contains the BIST status for all cores. IOBN1 always returns 0x0. Software must bit-wise logical and CORE_BSTAT with RST_PP_AVAILABLE before using it. */ #else /* Word 0 - Little Endian */ uint64_t core_bstat : 24; /**< [ 23: 0](RO/H) BIST status of the cores. IOBN0 contains the BIST status for all cores. IOBN1 always returns 0x0. Software must bit-wise logical and CORE_BSTAT with RST_PP_AVAILABLE before using it. */ uint64_t reserved_24_63 : 40; #endif /* Word 0 - End */ } cn83xx; }; typedef union bdk_iobnx_core_bist_status bdk_iobnx_core_bist_status_t; static inline uint64_t BDK_IOBNX_CORE_BIST_STATUS(unsigned long a) __attribute__ ((pure, always_inline)); static inline uint64_t BDK_IOBNX_CORE_BIST_STATUS(unsigned long a) { if (CAVIUM_IS_MODEL(CAVIUM_CN81XX) && (a==0)) return 0x87e0f0005008ll + 0x1000000ll * ((a) & 0x0); if (CAVIUM_IS_MODEL(CAVIUM_CN83XX) && (a<=1)) return 0x87e0f0005008ll + 0x1000000ll * ((a) & 0x1); if (CAVIUM_IS_MODEL(CAVIUM_CN88XX) && (a<=1)) return 0x87e0f0005008ll + 0x1000000ll * ((a) & 0x1); __bdk_csr_fatal("IOBNX_CORE_BIST_STATUS", 1, a, 0, 0, 0); } #define typedef_BDK_IOBNX_CORE_BIST_STATUS(a) bdk_iobnx_core_bist_status_t #define bustype_BDK_IOBNX_CORE_BIST_STATUS(a) BDK_CSR_TYPE_RSL #define basename_BDK_IOBNX_CORE_BIST_STATUS(a) "IOBNX_CORE_BIST_STATUS" #define device_bar_BDK_IOBNX_CORE_BIST_STATUS(a) 0x0 /* PF_BAR0 */ #define busnum_BDK_IOBNX_CORE_BIST_STATUS(a) (a) #define arguments_BDK_IOBNX_CORE_BIST_STATUS(a) (a),-1,-1,-1 /** * Register (RSL) iobn#_dis_ncbi_io * * IOBN Disable NCBI IO Register * IOBN control. */ union bdk_iobnx_dis_ncbi_io { uint64_t u; struct bdk_iobnx_dis_ncbi_io_s { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_6_63 : 58; uint64_t sli_key_mem : 1; /**< [ 5: 5](R/W) SLI KEY memory isolation. 0 = SLI initiated requests are allowed. 1 = SLI initiated read and write requests are allowed to KEY_MEM(0..2047) (e.g. 16KB, not all of KEY_MEM) only. SLI requests to any other address (non-KEY_MEM(0..2047)) will be redirected to ECAM0_NOP_ZF. */ uint64_t sli_off : 1; /**< [ 4: 4](R/W) SLI isolation. Resets to one in trusted mode, else zero. 0 = Operation of NCBI transactions are not impacted. 1 = NCBI transactions initiating at the SLI are disabled and turn into accesses to ECAM0_NOP_ZF. When set, this bit overrides [SLI_KEY_MEM]. */ uint64_t tlb_sync_dis : 1; /**< [ 3: 3](R/W) When set the IOBN will return SYNC-RDY to the SMMU without waiting for outstanding request to receive responses. */ uint64_t oci_key_only : 1; /**< [ 2: 2](RO) Restrict CCPI-sourced I/O write requests. 0 = CCPI-sourced I/O read and write requests are allowed to any device through IOB, including allowing read/writes to all of KEY_MEM(). 1 = CCPI-sourced I/O write requests allowed to KEY_MEM(0..2047) (e.g. 16KB, not all of KEY_MEM) only. CCPI-sourced writes to __any__ other address (non-KEY_MEM(0..2047)), or any CCPI-source read will be redirected to ECAM0_NOP_ZF (for non-ECAM) or ECAM0_NOP_ONNF (for-ECAM). This setting does not affect local-node originated traffic. In pass 1, read-only. */ uint64_t all_gic : 1; /**< [ 1: 1](R/W) All-to-GIC. For diagnostic use only. Internal: 0 = Normal operation. NCBI traffic to GIC interrupt delivery registers will be ordered with other interrupt delivery traffic and over the RIB bus. NCBI traffic to normal non- interrupt-delivery GIC registers will go via RSL. 1 = All NCBI traffic to the GIC DID will be assumed to be interrupt delivery traffic. This will break NCBI write transactions to non-interrupt-delivery GIC registers, but may work around bugs whereby interrupt-delivery CSRs are mis-catagorized inside IOB. */ uint64_t ncbi_off : 1; /**< [ 0: 0](R/W) When set NCBI translation to I/O space (with exception of GIC traffic) will be disabled. Disabled traffic will turn into access to ECAM0_NOP_ZF. */ #else /* Word 0 - Little Endian */ uint64_t ncbi_off : 1; /**< [ 0: 0](R/W) When set NCBI translation to I/O space (with exception of GIC traffic) will be disabled. Disabled traffic will turn into access to ECAM0_NOP_ZF. */ uint64_t all_gic : 1; /**< [ 1: 1](R/W) All-to-GIC. For diagnostic use only. Internal: 0 = Normal operation. NCBI traffic to GIC interrupt delivery registers will be ordered with other interrupt delivery traffic and over the RIB bus. NCBI traffic to normal non- interrupt-delivery GIC registers will go via RSL. 1 = All NCBI traffic to the GIC DID will be assumed to be interrupt delivery traffic. This will break NCBI write transactions to non-interrupt-delivery GIC registers, but may work around bugs whereby interrupt-delivery CSRs are mis-catagorized inside IOB. */ uint64_t oci_key_only : 1; /**< [ 2: 2](RO) Restrict CCPI-sourced I/O write requests. 0 = CCPI-sourced I/O read and write requests are allowed to any device through IOB, including allowing read/writes to all of KEY_MEM(). 1 = CCPI-sourced I/O write requests allowed to KEY_MEM(0..2047) (e.g. 16KB, not all of KEY_MEM) only. CCPI-sourced writes to __any__ other address (non-KEY_MEM(0..2047)), or any CCPI-source read will be redirected to ECAM0_NOP_ZF (for non-ECAM) or ECAM0_NOP_ONNF (for-ECAM). This setting does not affect local-node originated traffic. In pass 1, read-only. */ uint64_t tlb_sync_dis : 1; /**< [ 3: 3](R/W) When set the IOBN will return SYNC-RDY to the SMMU without waiting for outstanding request to receive responses. */ uint64_t sli_off : 1; /**< [ 4: 4](R/W) SLI isolation. Resets to one in trusted mode, else zero. 0 = Operation of NCBI transactions are not impacted. 1 = NCBI transactions initiating at the SLI are disabled and turn into accesses to ECAM0_NOP_ZF. When set, this bit overrides [SLI_KEY_MEM]. */ uint64_t sli_key_mem : 1; /**< [ 5: 5](R/W) SLI KEY memory isolation. 0 = SLI initiated requests are allowed. 1 = SLI initiated read and write requests are allowed to KEY_MEM(0..2047) (e.g. 16KB, not all of KEY_MEM) only. SLI requests to any other address (non-KEY_MEM(0..2047)) will be redirected to ECAM0_NOP_ZF. */ uint64_t reserved_6_63 : 58; #endif /* Word 0 - End */ } s; struct bdk_iobnx_dis_ncbi_io_cn88xxp1 { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_4_63 : 60; uint64_t tlb_sync_dis : 1; /**< [ 3: 3](R/W) When set the IOBN will return SYNC-RDY to the SMMU without waiting for outstanding request to receive responses. */ uint64_t oci_key_only : 1; /**< [ 2: 2](RO) Restrict CCPI-sourced I/O write requests. 0 = CCPI-sourced I/O read and write requests are allowed to any device through IOB, including allowing read/writes to all of KEY_MEM(). 1 = CCPI-sourced I/O write requests allowed to KEY_MEM(0..2047) (e.g. 16KB, not all of KEY_MEM) only. CCPI-sourced writes to __any__ other address (non-KEY_MEM(0..2047)), or any CCPI-source read will be redirected to ECAM0_NOP_ZF (for non-ECAM) or ECAM0_NOP_ONNF (for-ECAM). This setting does not affect local-node originated traffic. In pass 1, read-only. */ uint64_t all_gic : 1; /**< [ 1: 1](R/W) All-to-GIC. For diagnostic use only. Internal: 0 = Normal operation. NCBI traffic to GIC interrupt delivery registers will be ordered with other interrupt delivery traffic and over the RIB bus. NCBI traffic to normal non- interrupt-delivery GIC registers will go via RSL. 1 = All NCBI traffic to the GIC DID will be assumed to be interrupt delivery traffic. This will break NCBI write transactions to non-interrupt-delivery GIC registers, but may work around bugs whereby interrupt-delivery CSRs are mis-catagorized inside IOB. */ uint64_t ncbi_off : 1; /**< [ 0: 0](R/W) When set NCBI translation to I/O space (with exception of GIC traffic) will be disabled. Disabled traffic will turn into access to ECAM0_NOP_ZF. */ #else /* Word 0 - Little Endian */ uint64_t ncbi_off : 1; /**< [ 0: 0](R/W) When set NCBI translation to I/O space (with exception of GIC traffic) will be disabled. Disabled traffic will turn into access to ECAM0_NOP_ZF. */ uint64_t all_gic : 1; /**< [ 1: 1](R/W) All-to-GIC. For diagnostic use only. Internal: 0 = Normal operation. NCBI traffic to GIC interrupt delivery registers will be ordered with other interrupt delivery traffic and over the RIB bus. NCBI traffic to normal non- interrupt-delivery GIC registers will go via RSL. 1 = All NCBI traffic to the GIC DID will be assumed to be interrupt delivery traffic. This will break NCBI write transactions to non-interrupt-delivery GIC registers, but may work around bugs whereby interrupt-delivery CSRs are mis-catagorized inside IOB. */ uint64_t oci_key_only : 1; /**< [ 2: 2](RO) Restrict CCPI-sourced I/O write requests. 0 = CCPI-sourced I/O read and write requests are allowed to any device through IOB, including allowing read/writes to all of KEY_MEM(). 1 = CCPI-sourced I/O write requests allowed to KEY_MEM(0..2047) (e.g. 16KB, not all of KEY_MEM) only. CCPI-sourced writes to __any__ other address (non-KEY_MEM(0..2047)), or any CCPI-source read will be redirected to ECAM0_NOP_ZF (for non-ECAM) or ECAM0_NOP_ONNF (for-ECAM). This setting does not affect local-node originated traffic. In pass 1, read-only. */ uint64_t tlb_sync_dis : 1; /**< [ 3: 3](R/W) When set the IOBN will return SYNC-RDY to the SMMU without waiting for outstanding request to receive responses. */ uint64_t reserved_4_63 : 60; #endif /* Word 0 - End */ } cn88xxp1; struct bdk_iobnx_dis_ncbi_io_cn81xx { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_4_63 : 60; uint64_t tlb_sync_dis : 1; /**< [ 3: 3](R/W) When set the IOBN will return SYNC-RDY to the SMMU without waiting for outstanding request to receive responses. */ uint64_t oci_key_only : 1; /**< [ 2: 2](R/W) Restrict CCPI-sourced I/O write requests. 0 = CCPI-sourced I/O read and write requests are allowed to any device through IOB, including allowing read/writes to all of KEY_MEM(). 1 = CCPI-sourced I/O write requests allowed to KEY_MEM(0..2047) (e.g. 16KB, not all of KEY_MEM) only. CCPI-sourced writes to __any__ other address (non-KEY_MEM(0..2047)), or any CCPI-source read will be redirected to ECAM0_NOP_ZF (for non-ECAM) or ECAM0_NOP_ONNF (for-ECAM). This setting does not affect local-node originated traffic. In pass 1, read-only. */ uint64_t all_gic : 1; /**< [ 1: 1](R/W) All-to-GIC. For diagnostic use only. Internal: 0 = Normal operation. NCBI traffic to GIC interrupt delivery registers will be ordered with other interrupt delivery traffic and over the RIB bus. NCBI traffic to normal non- interrupt-delivery GIC registers will go via RSL. 1 = All NCBI traffic to the GIC DID will be assumed to be interrupt delivery traffic. This will break NCBI write transactions to non-interrupt-delivery GIC registers, but may work around bugs whereby interrupt-delivery CSRs are mis-catagorized inside IOB. */ uint64_t ncbi_off : 1; /**< [ 0: 0](R/W) When set NCBI translation to I/O space (with exception of GIC traffic) will be disabled. Disabled traffic will turn into access to ECAM0_NOP_ZF. */ #else /* Word 0 - Little Endian */ uint64_t ncbi_off : 1; /**< [ 0: 0](R/W) When set NCBI translation to I/O space (with exception of GIC traffic) will be disabled. Disabled traffic will turn into access to ECAM0_NOP_ZF. */ uint64_t all_gic : 1; /**< [ 1: 1](R/W) All-to-GIC. For diagnostic use only. Internal: 0 = Normal operation. NCBI traffic to GIC interrupt delivery registers will be ordered with other interrupt delivery traffic and over the RIB bus. NCBI traffic to normal non- interrupt-delivery GIC registers will go via RSL. 1 = All NCBI traffic to the GIC DID will be assumed to be interrupt delivery traffic. This will break NCBI write transactions to non-interrupt-delivery GIC registers, but may work around bugs whereby interrupt-delivery CSRs are mis-catagorized inside IOB. */ uint64_t oci_key_only : 1; /**< [ 2: 2](R/W) Restrict CCPI-sourced I/O write requests. 0 = CCPI-sourced I/O read and write requests are allowed to any device through IOB, including allowing read/writes to all of KEY_MEM(). 1 = CCPI-sourced I/O write requests allowed to KEY_MEM(0..2047) (e.g. 16KB, not all of KEY_MEM) only. CCPI-sourced writes to __any__ other address (non-KEY_MEM(0..2047)), or any CCPI-source read will be redirected to ECAM0_NOP_ZF (for non-ECAM) or ECAM0_NOP_ONNF (for-ECAM). This setting does not affect local-node originated traffic. In pass 1, read-only. */ uint64_t tlb_sync_dis : 1; /**< [ 3: 3](R/W) When set the IOBN will return SYNC-RDY to the SMMU without waiting for outstanding request to receive responses. */ uint64_t reserved_4_63 : 60; #endif /* Word 0 - End */ } cn81xx; struct bdk_iobnx_dis_ncbi_io_cn83xx { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_6_63 : 58; uint64_t sli_key_mem : 1; /**< [ 5: 5](R/W) SLI KEY memory isolation. 0 = SLI initiated requests are allowed. 1 = SLI initiated read and write requests are allowed to KEY_MEM(0..2047) (e.g. 16KB, not all of KEY_MEM) only. SLI requests to any other address (non-KEY_MEM(0..2047)) will be redirected to ECAM0_NOP_ZF. */ uint64_t sli_off : 1; /**< [ 4: 4](R/W) SLI isolation. Resets to one in trusted mode, else zero. 0 = Operation of NCBI transactions are not impacted. 1 = NCBI transactions initiating at the SLI are disabled and turn into accesses to ECAM0_NOP_ZF. When set, this bit overrides [SLI_KEY_MEM]. */ uint64_t tlb_sync_dis : 1; /**< [ 3: 3](R/W) When set the IOBN will return SYNC-RDY to the SMMU without waiting for outstanding request to receive responses. */ uint64_t oci_key_only : 1; /**< [ 2: 2](R/W) Restrict CCPI-sourced I/O write requests. 0 = CCPI-sourced I/O read and write requests are allowed to any device through IOB, including allowing read/writes to all of KEY_MEM(). 1 = CCPI-sourced I/O write requests allowed to KEY_MEM(0..2047) (e.g. 16KB, not all of KEY_MEM) only. CCPI-sourced writes to __any__ other address (non-KEY_MEM(0..2047)), or any CCPI-source read will be redirected to ECAM0_NOP_ZF (for non-ECAM) or ECAM0_NOP_ONNF (for-ECAM). This setting does not affect local-node originated traffic. In pass 1, read-only. */ uint64_t all_gic : 1; /**< [ 1: 1](R/W) All-to-GIC. For diagnostic use only. Internal: 0 = Normal operation. NCBI traffic to GIC interrupt delivery registers will be ordered with other interrupt delivery traffic and over the RIB bus. NCBI traffic to normal non- interrupt-delivery GIC registers will go via RSL. 1 = All NCBI traffic to the GIC DID will be assumed to be interrupt delivery traffic. This will break NCBI write transactions to non-interrupt-delivery GIC registers, but may work around bugs whereby interrupt-delivery CSRs are mis-catagorized inside IOB. */ uint64_t ncbi_off : 1; /**< [ 0: 0](R/W) When set NCBI translation to I/O space (with exception of GIC traffic) will be disabled. Disabled traffic will turn into access to ECAM0_NOP_ZF. */ #else /* Word 0 - Little Endian */ uint64_t ncbi_off : 1; /**< [ 0: 0](R/W) When set NCBI translation to I/O space (with exception of GIC traffic) will be disabled. Disabled traffic will turn into access to ECAM0_NOP_ZF. */ uint64_t all_gic : 1; /**< [ 1: 1](R/W) All-to-GIC. For diagnostic use only. Internal: 0 = Normal operation. NCBI traffic to GIC interrupt delivery registers will be ordered with other interrupt delivery traffic and over the RIB bus. NCBI traffic to normal non- interrupt-delivery GIC registers will go via RSL. 1 = All NCBI traffic to the GIC DID will be assumed to be interrupt delivery traffic. This will break NCBI write transactions to non-interrupt-delivery GIC registers, but may work around bugs whereby interrupt-delivery CSRs are mis-catagorized inside IOB. */ uint64_t oci_key_only : 1; /**< [ 2: 2](R/W) Restrict CCPI-sourced I/O write requests. 0 = CCPI-sourced I/O read and write requests are allowed to any device through IOB, including allowing read/writes to all of KEY_MEM(). 1 = CCPI-sourced I/O write requests allowed to KEY_MEM(0..2047) (e.g. 16KB, not all of KEY_MEM) only. CCPI-sourced writes to __any__ other address (non-KEY_MEM(0..2047)), or any CCPI-source read will be redirected to ECAM0_NOP_ZF (for non-ECAM) or ECAM0_NOP_ONNF (for-ECAM). This setting does not affect local-node originated traffic. In pass 1, read-only. */ uint64_t tlb_sync_dis : 1; /**< [ 3: 3](R/W) When set the IOBN will return SYNC-RDY to the SMMU without waiting for outstanding request to receive responses. */ uint64_t sli_off : 1; /**< [ 4: 4](R/W) SLI isolation. Resets to one in trusted mode, else zero. 0 = Operation of NCBI transactions are not impacted. 1 = NCBI transactions initiating at the SLI are disabled and turn into accesses to ECAM0_NOP_ZF. When set, this bit overrides [SLI_KEY_MEM]. */ uint64_t sli_key_mem : 1; /**< [ 5: 5](R/W) SLI KEY memory isolation. 0 = SLI initiated requests are allowed. 1 = SLI initiated read and write requests are allowed to KEY_MEM(0..2047) (e.g. 16KB, not all of KEY_MEM) only. SLI requests to any other address (non-KEY_MEM(0..2047)) will be redirected to ECAM0_NOP_ZF. */ uint64_t reserved_6_63 : 58; #endif /* Word 0 - End */ } cn83xx; /* struct bdk_iobnx_dis_ncbi_io_cn81xx cn88xxp2; */ }; typedef union bdk_iobnx_dis_ncbi_io bdk_iobnx_dis_ncbi_io_t; static inline uint64_t BDK_IOBNX_DIS_NCBI_IO(unsigned long a) __attribute__ ((pure, always_inline)); static inline uint64_t BDK_IOBNX_DIS_NCBI_IO(unsigned long a) { if (CAVIUM_IS_MODEL(CAVIUM_CN81XX) && (a==0)) return 0x87e0f0003000ll + 0x1000000ll * ((a) & 0x0); if (CAVIUM_IS_MODEL(CAVIUM_CN83XX) && (a<=1)) return 0x87e0f0003000ll + 0x1000000ll * ((a) & 0x1); if (CAVIUM_IS_MODEL(CAVIUM_CN88XX) && (a<=1)) return 0x87e0f0003000ll + 0x1000000ll * ((a) & 0x1); __bdk_csr_fatal("IOBNX_DIS_NCBI_IO", 1, a, 0, 0, 0); } #define typedef_BDK_IOBNX_DIS_NCBI_IO(a) bdk_iobnx_dis_ncbi_io_t #define bustype_BDK_IOBNX_DIS_NCBI_IO(a) BDK_CSR_TYPE_RSL #define basename_BDK_IOBNX_DIS_NCBI_IO(a) "IOBNX_DIS_NCBI_IO" #define device_bar_BDK_IOBNX_DIS_NCBI_IO(a) 0x0 /* PF_BAR0 */ #define busnum_BDK_IOBNX_DIS_NCBI_IO(a) (a) #define arguments_BDK_IOBNX_DIS_NCBI_IO(a) (a),-1,-1,-1 /** * Register (RSL) iobn#_dll * * INTERNAL: IOBN Core-Clock DLL Status Register * * Status of the CCU core-clock DLL. For diagnostic use only. */ union bdk_iobnx_dll { uint64_t u; struct bdk_iobnx_dll_s { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_35_63 : 29; uint64_t dbg_window : 3; /**< [ 34: 32](R/W/H) Defines a debug window, during which the DLL settings and the phase detector outputs will be monitored. The min and the max DLL setting during that window is going to be reported as well as any illegal phase detector outputs. Every write to the [DBG_WINDOW] resets [ILLEGAL_PD_REVERSED], [ILLEGAL_PD_LATE], [ILLEGAL_PD_EARLY], [MAX_DLL_SETTING] and [MIN_DLL_SETTING]. The debug window will correspond to the following number of rclk cycles based on the [DBG_WINDOW] value. 0x0 = Indefinetly. 0x1 = 2 ^ 8 core clock cycles. 0x2 = 2 ^ 12 core clock cycles. 0x3 = 2 ^ 16 core clock cycles. 0x4 = 2 ^ 20 core clock cycles. 0x5 = 2 ^ 24 core clock cycles. 0x6 = 2 ^ 28 core clock cycles. 0x7 = 2 ^ 32 core clock cycles. */ uint64_t dbg_window_done : 1; /**< [ 31: 31](RO/H) Indicates if the debug window set by [DBG_WINDOW] is completed. */ uint64_t illegal_pd_reversed : 1; /**< [ 30: 30](RO/H) clk_fast_rgt and clk_fast_lft outputs of the phase detector had concurrently an illegal reading during the last debug window set by [DBG_WINDOW]. */ uint64_t illegal_pd_late : 1; /**< [ 29: 29](RO/H) clk_fast_rgt output of the phase detector had an illegal reading (1) during the last debug window set by [DBG_WINDOW]. */ uint64_t illegal_pd_early : 1; /**< [ 28: 28](RO/H) clk_fast_lft output of the phase detector had an illegal reading (0) during the last debug window set by [DBG_WINDOW]. */ uint64_t reserved_27 : 1; uint64_t max_dll_setting : 7; /**< [ 26: 20](RO/H) Max reported DLL setting during the last debug window set by [DBG_WINDOW]. */ uint64_t reserved_19 : 1; uint64_t min_dll_setting : 7; /**< [ 18: 12](RO/H) Min reported DLL setting during the last debug window set by [DBG_WINDOW]. */ uint64_t pd_out : 3; /**< [ 11: 9](RO/H) Synchronized output from CCU phase detector: \<11\> = clk_fast_mid. \<10\> = clk_fast_lft. \<9\> = clk_fast_rgt. */ uint64_t dll_lock : 1; /**< [ 8: 8](RO/H) The dll_lock signal from ROC core-clock DLL, from the positive edge of refclk. */ uint64_t reserved_7 : 1; uint64_t dll_setting : 7; /**< [ 6: 0](RO/H) The ROC core-clock DLL setting, from the negative edge of refclk. */ #else /* Word 0 - Little Endian */ uint64_t dll_setting : 7; /**< [ 6: 0](RO/H) The ROC core-clock DLL setting, from the negative edge of refclk. */ uint64_t reserved_7 : 1; uint64_t dll_lock : 1; /**< [ 8: 8](RO/H) The dll_lock signal from ROC core-clock DLL, from the positive edge of refclk. */ uint64_t pd_out : 3; /**< [ 11: 9](RO/H) Synchronized output from CCU phase detector: \<11\> = clk_fast_mid. \<10\> = clk_fast_lft. \<9\> = clk_fast_rgt. */ uint64_t min_dll_setting : 7; /**< [ 18: 12](RO/H) Min reported DLL setting during the last debug window set by [DBG_WINDOW]. */ uint64_t reserved_19 : 1; uint64_t max_dll_setting : 7; /**< [ 26: 20](RO/H) Max reported DLL setting during the last debug window set by [DBG_WINDOW]. */ uint64_t reserved_27 : 1; uint64_t illegal_pd_early : 1; /**< [ 28: 28](RO/H) clk_fast_lft output of the phase detector had an illegal reading (0) during the last debug window set by [DBG_WINDOW]. */ uint64_t illegal_pd_late : 1; /**< [ 29: 29](RO/H) clk_fast_rgt output of the phase detector had an illegal reading (1) during the last debug window set by [DBG_WINDOW]. */ uint64_t illegal_pd_reversed : 1; /**< [ 30: 30](RO/H) clk_fast_rgt and clk_fast_lft outputs of the phase detector had concurrently an illegal reading during the last debug window set by [DBG_WINDOW]. */ uint64_t dbg_window_done : 1; /**< [ 31: 31](RO/H) Indicates if the debug window set by [DBG_WINDOW] is completed. */ uint64_t dbg_window : 3; /**< [ 34: 32](R/W/H) Defines a debug window, during which the DLL settings and the phase detector outputs will be monitored. The min and the max DLL setting during that window is going to be reported as well as any illegal phase detector outputs. Every write to the [DBG_WINDOW] resets [ILLEGAL_PD_REVERSED], [ILLEGAL_PD_LATE], [ILLEGAL_PD_EARLY], [MAX_DLL_SETTING] and [MIN_DLL_SETTING]. The debug window will correspond to the following number of rclk cycles based on the [DBG_WINDOW] value. 0x0 = Indefinetly. 0x1 = 2 ^ 8 core clock cycles. 0x2 = 2 ^ 12 core clock cycles. 0x3 = 2 ^ 16 core clock cycles. 0x4 = 2 ^ 20 core clock cycles. 0x5 = 2 ^ 24 core clock cycles. 0x6 = 2 ^ 28 core clock cycles. 0x7 = 2 ^ 32 core clock cycles. */ uint64_t reserved_35_63 : 29; #endif /* Word 0 - End */ } s; /* struct bdk_iobnx_dll_s cn; */ }; typedef union bdk_iobnx_dll bdk_iobnx_dll_t; static inline uint64_t BDK_IOBNX_DLL(unsigned long a) __attribute__ ((pure, always_inline)); static inline uint64_t BDK_IOBNX_DLL(unsigned long a) { if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX) && (a<=1)) return 0x87e0f0003040ll + 0x1000000ll * ((a) & 0x1); __bdk_csr_fatal("IOBNX_DLL", 1, a, 0, 0, 0); } #define typedef_BDK_IOBNX_DLL(a) bdk_iobnx_dll_t #define bustype_BDK_IOBNX_DLL(a) BDK_CSR_TYPE_RSL #define basename_BDK_IOBNX_DLL(a) "IOBNX_DLL" #define device_bar_BDK_IOBNX_DLL(a) 0x0 /* PF_BAR0 */ #define busnum_BDK_IOBNX_DLL(a) (a) #define arguments_BDK_IOBNX_DLL(a) (a),-1,-1,-1 /** * Register (RSL) iobn#_dom#_bus#_streams * * IOBN Domain Bus Permit Registers * This register sets the permissions for a NCBI transaction (which are DMA * transactions or MSI-X writes), for requests for NCB device virtual-functions * and bridges. * * Index {b} corresponds to the stream's domain (stream_id\<21:16\>). * * Index {c} corresponds to the stream's bus number (stream_id\<15:8\>). * * For each combination of index {b} and {c}, each index {a} (the IOB number) must be * programmed to the same value. * * Streams which hit index {c}=0x0 are also affected by IOBN()_DOM()_DEV()_STREAMS. * Streams which hit index {b}=PCC_DEV_CON_E::MRML\<21:16\>, * {c}=PCC_DEV_CON_E::MRML\<15:8\> are also affected by IOBN()_RSL()_STREAMS. * Both of those alternative registers provide better granularity, so those indices * into this register should be left permissive (value of 0x0). */ union bdk_iobnx_domx_busx_streams { uint64_t u; struct bdk_iobnx_domx_busx_streams_s { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_2_63 : 62; uint64_t strm_nsec : 1; /**< [ 1: 1](SR/W) Stream nonsecure. 0 = The device's stream ID is marked secure headed into the SMMU. If the device is making a non-physical request, the SMMU will use secure world lookup. The SMMU may, if properly configured, generate an outgoing physical address that is secure. 1 = The device's stream ID is marked nonsecure headed into the SMMU. If the device is making a non-physical request, the SMMU will use nonsecure world lookup. The SMMU outgoing physical address will be nonsecure. [STRM_NSEC] is ignored if the device is making a physical request (as these transactions bypass the SMMU translation process). Typically firmware sets [PHYS_NSEC] and [STRM_NSEC] the same. */ uint64_t phys_nsec : 1; /**< [ 0: 0](SR/W) Physical nonsecure. 0 = When the device makes a physical request, IOB will use the device's requested secure bit to determine if the request to DRAM/LLC is secure or not. 1 = When the device makes a physical request, IOB will squash the device's secure request and issue the request to DRAM/LLC as nonsecure. Ignored if a device makes a non-physical request. (As non-physical requests cause the SMMU to generate the SMMU-outgoing secure bit based on the SMMU translation process, including [STRM_NSEC].) Typically firmware sets [PHYS_NSEC] and [STRM_NSEC] the same. */ #else /* Word 0 - Little Endian */ uint64_t phys_nsec : 1; /**< [ 0: 0](SR/W) Physical nonsecure. 0 = When the device makes a physical request, IOB will use the device's requested secure bit to determine if the request to DRAM/LLC is secure or not. 1 = When the device makes a physical request, IOB will squash the device's secure request and issue the request to DRAM/LLC as nonsecure. Ignored if a device makes a non-physical request. (As non-physical requests cause the SMMU to generate the SMMU-outgoing secure bit based on the SMMU translation process, including [STRM_NSEC].) Typically firmware sets [PHYS_NSEC] and [STRM_NSEC] the same. */ uint64_t strm_nsec : 1; /**< [ 1: 1](SR/W) Stream nonsecure. 0 = The device's stream ID is marked secure headed into the SMMU. If the device is making a non-physical request, the SMMU will use secure world lookup. The SMMU may, if properly configured, generate an outgoing physical address that is secure. 1 = The device's stream ID is marked nonsecure headed into the SMMU. If the device is making a non-physical request, the SMMU will use nonsecure world lookup. The SMMU outgoing physical address will be nonsecure. [STRM_NSEC] is ignored if the device is making a physical request (as these transactions bypass the SMMU translation process). Typically firmware sets [PHYS_NSEC] and [STRM_NSEC] the same. */ uint64_t reserved_2_63 : 62; #endif /* Word 0 - End */ } s; /* struct bdk_iobnx_domx_busx_streams_s cn; */ }; typedef union bdk_iobnx_domx_busx_streams bdk_iobnx_domx_busx_streams_t; static inline uint64_t BDK_IOBNX_DOMX_BUSX_STREAMS(unsigned long a, unsigned long b, unsigned long c) __attribute__ ((pure, always_inline)); static inline uint64_t BDK_IOBNX_DOMX_BUSX_STREAMS(unsigned long a, unsigned long b, unsigned long c) { if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX) && ((a<=1) && (b<=6) && (c<=255))) return 0x87e0f0040000ll + 0x1000000ll * ((a) & 0x1) + 0x800ll * ((b) & 0x7) + 8ll * ((c) & 0xff); __bdk_csr_fatal("IOBNX_DOMX_BUSX_STREAMS", 3, a, b, c, 0); } #define typedef_BDK_IOBNX_DOMX_BUSX_STREAMS(a,b,c) bdk_iobnx_domx_busx_streams_t #define bustype_BDK_IOBNX_DOMX_BUSX_STREAMS(a,b,c) BDK_CSR_TYPE_RSL #define basename_BDK_IOBNX_DOMX_BUSX_STREAMS(a,b,c) "IOBNX_DOMX_BUSX_STREAMS" #define device_bar_BDK_IOBNX_DOMX_BUSX_STREAMS(a,b,c) 0x0 /* PF_BAR0 */ #define busnum_BDK_IOBNX_DOMX_BUSX_STREAMS(a,b,c) (a) #define arguments_BDK_IOBNX_DOMX_BUSX_STREAMS(a,b,c) (a),(b),(c),-1 /** * Register (RSL) iobn#_dom#_dev#_streams * * IOBN Device Bus Permit Registers * This register sets the permissions for a NCBI transaction (which are DMA * transactions or MSI-X writes), for requests for NCB device physicical-functions, * i.e. those where: * * _ stream_id\<15:8\> = 0x0. * * Index {a} corresponds to the stream's domain number (stream_id\<21:16\>). * * Index {b} corresponds to the non-ARI ECAM device number (stream_id\<7:3\>). * * For each combination of index {b} and {c}, each index {a} (the IOB number) must be * programmed to the same value. */ union bdk_iobnx_domx_devx_streams { uint64_t u; struct bdk_iobnx_domx_devx_streams_s { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_2_63 : 62; uint64_t strm_nsec : 1; /**< [ 1: 1](SR/W) Stream nonsecure. 0 = The device's stream ID is marked secure headed into the SMMU. If the device is making a non-physical request, the SMMU will use secure world lookup. The SMMU may, if properly configured, generate an outgoing physical address that is secure. 1 = The device's stream ID is marked nonsecure headed into the SMMU. If the device is making a non-physical request, the SMMU will use nonsecure world lookup. The SMMU outgoing physical address will be nonsecure. [STRM_NSEC] is ignored if the device is making a physical request (as these transactions bypass the SMMU translation process). Typically firmware sets [PHYS_NSEC] and [STRM_NSEC] the same. */ uint64_t phys_nsec : 1; /**< [ 0: 0](SR/W) Physical nonsecure. 0 = When the device makes a physical request, IOB will use the device's requested secure bit to determine if the request to DRAM/LLC is secure or not. 1 = When the device makes a physical request, IOB will squash the device's secure request and issue the request to DRAM/LLC as nonsecure. Ignored if a device makes a non-physical request. (As non-physical requests cause the SMMU to generate the SMMU-outgoing secure bit based on the SMMU translation process, including [STRM_NSEC].) Typically firmware sets [PHYS_NSEC] and [STRM_NSEC] the same. */ #else /* Word 0 - Little Endian */ uint64_t phys_nsec : 1; /**< [ 0: 0](SR/W) Physical nonsecure. 0 = When the device makes a physical request, IOB will use the device's requested secure bit to determine if the request to DRAM/LLC is secure or not. 1 = When the device makes a physical request, IOB will squash the device's secure request and issue the request to DRAM/LLC as nonsecure. Ignored if a device makes a non-physical request. (As non-physical requests cause the SMMU to generate the SMMU-outgoing secure bit based on the SMMU translation process, including [STRM_NSEC].) Typically firmware sets [PHYS_NSEC] and [STRM_NSEC] the same. */ uint64_t strm_nsec : 1; /**< [ 1: 1](SR/W) Stream nonsecure. 0 = The device's stream ID is marked secure headed into the SMMU. If the device is making a non-physical request, the SMMU will use secure world lookup. The SMMU may, if properly configured, generate an outgoing physical address that is secure. 1 = The device's stream ID is marked nonsecure headed into the SMMU. If the device is making a non-physical request, the SMMU will use nonsecure world lookup. The SMMU outgoing physical address will be nonsecure. [STRM_NSEC] is ignored if the device is making a physical request (as these transactions bypass the SMMU translation process). Typically firmware sets [PHYS_NSEC] and [STRM_NSEC] the same. */ uint64_t reserved_2_63 : 62; #endif /* Word 0 - End */ } s; /* struct bdk_iobnx_domx_devx_streams_s cn; */ }; typedef union bdk_iobnx_domx_devx_streams bdk_iobnx_domx_devx_streams_t; static inline uint64_t BDK_IOBNX_DOMX_DEVX_STREAMS(unsigned long a, unsigned long b, unsigned long c) __attribute__ ((pure, always_inline)); static inline uint64_t BDK_IOBNX_DOMX_DEVX_STREAMS(unsigned long a, unsigned long b, unsigned long c) { if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX) && ((a<=1) && (b<=6) && (c<=31))) return 0x87e0f0010000ll + 0x1000000ll * ((a) & 0x1) + 0x100ll * ((b) & 0x7) + 8ll * ((c) & 0x1f); __bdk_csr_fatal("IOBNX_DOMX_DEVX_STREAMS", 3, a, b, c, 0); } #define typedef_BDK_IOBNX_DOMX_DEVX_STREAMS(a,b,c) bdk_iobnx_domx_devx_streams_t #define bustype_BDK_IOBNX_DOMX_DEVX_STREAMS(a,b,c) BDK_CSR_TYPE_RSL #define basename_BDK_IOBNX_DOMX_DEVX_STREAMS(a,b,c) "IOBNX_DOMX_DEVX_STREAMS" #define device_bar_BDK_IOBNX_DOMX_DEVX_STREAMS(a,b,c) 0x0 /* PF_BAR0 */ #define busnum_BDK_IOBNX_DOMX_DEVX_STREAMS(a,b,c) (a) #define arguments_BDK_IOBNX_DOMX_DEVX_STREAMS(a,b,c) (a),(b),(c),-1 /** * Register (RSL) iobn#_gbl_dll * * INTERNAL: IOBN Global Core-Clock DLL Status Register * * Status of the global core-clock DLL. */ union bdk_iobnx_gbl_dll { uint64_t u; struct bdk_iobnx_gbl_dll_s { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_20_63 : 44; uint64_t pdr_rclk_refclk : 1; /**< [ 19: 19](RO/H) Synchronized pdr_rclk_refclk from global core-clock DLL cmb0 phase detectors. */ uint64_t pdl_rclk_refclk : 1; /**< [ 18: 18](RO/H) Synchronized pdl_rclk_refclk from global core-clock DLL cmb0 phase detectors. */ uint64_t pd_pos_rclk_refclk : 1; /**< [ 17: 17](RO/H) Synchronized pd_pos_rclk_refclk from global core-clock DLL cmb0 phase detectors. */ uint64_t dll_fsm_state_a : 3; /**< [ 16: 14](RO/H) State for the global core-clock DLL, from the positive edge of refclk. 0x0 = TMD_IDLE. 0x1 = TMD_STATE1. 0x2 = TMD_STATE2. 0x3 = TMD_STATE3. 0x4 = TMD_STATE4. 0x5 = TMD_LOCKED. */ uint64_t dll_lock : 1; /**< [ 13: 13](RO/H) The dll_lock signal from global core-clock DLL, from the positive edge of refclk. */ uint64_t dll_clk_invert_out : 1; /**< [ 12: 12](RO/H) The clk_invert setting from the global core-clock DLL, from the negative edge of refclk. */ uint64_t dll_setting : 12; /**< [ 11: 0](RO/H) The global core-clock DLL setting, from the negative edge of refclk. */ #else /* Word 0 - Little Endian */ uint64_t dll_setting : 12; /**< [ 11: 0](RO/H) The global core-clock DLL setting, from the negative edge of refclk. */ uint64_t dll_clk_invert_out : 1; /**< [ 12: 12](RO/H) The clk_invert setting from the global core-clock DLL, from the negative edge of refclk. */ uint64_t dll_lock : 1; /**< [ 13: 13](RO/H) The dll_lock signal from global core-clock DLL, from the positive edge of refclk. */ uint64_t dll_fsm_state_a : 3; /**< [ 16: 14](RO/H) State for the global core-clock DLL, from the positive edge of refclk. 0x0 = TMD_IDLE. 0x1 = TMD_STATE1. 0x2 = TMD_STATE2. 0x3 = TMD_STATE3. 0x4 = TMD_STATE4. 0x5 = TMD_LOCKED. */ uint64_t pd_pos_rclk_refclk : 1; /**< [ 17: 17](RO/H) Synchronized pd_pos_rclk_refclk from global core-clock DLL cmb0 phase detectors. */ uint64_t pdl_rclk_refclk : 1; /**< [ 18: 18](RO/H) Synchronized pdl_rclk_refclk from global core-clock DLL cmb0 phase detectors. */ uint64_t pdr_rclk_refclk : 1; /**< [ 19: 19](RO/H) Synchronized pdr_rclk_refclk from global core-clock DLL cmb0 phase detectors. */ uint64_t reserved_20_63 : 44; #endif /* Word 0 - End */ } s; /* struct bdk_iobnx_gbl_dll_s cn; */ }; typedef union bdk_iobnx_gbl_dll bdk_iobnx_gbl_dll_t; static inline uint64_t BDK_IOBNX_GBL_DLL(unsigned long a) __attribute__ ((pure, always_inline)); static inline uint64_t BDK_IOBNX_GBL_DLL(unsigned long a) { if (CAVIUM_IS_MODEL(CAVIUM_CN81XX) && (a==0)) return 0x87e0f000a000ll + 0x1000000ll * ((a) & 0x0); if (CAVIUM_IS_MODEL(CAVIUM_CN83XX) && (a<=1)) return 0x87e0f000a000ll + 0x1000000ll * ((a) & 0x1); if (CAVIUM_IS_MODEL(CAVIUM_CN88XX) && (a<=1)) return 0x87e0f000a000ll + 0x1000000ll * ((a) & 0x1); __bdk_csr_fatal("IOBNX_GBL_DLL", 1, a, 0, 0, 0); } #define typedef_BDK_IOBNX_GBL_DLL(a) bdk_iobnx_gbl_dll_t #define bustype_BDK_IOBNX_GBL_DLL(a) BDK_CSR_TYPE_RSL #define basename_BDK_IOBNX_GBL_DLL(a) "IOBNX_GBL_DLL" #define device_bar_BDK_IOBNX_GBL_DLL(a) 0x0 /* PF_BAR0 */ #define busnum_BDK_IOBNX_GBL_DLL(a) (a) #define arguments_BDK_IOBNX_GBL_DLL(a) (a),-1,-1,-1 /** * Register (RSL) iobn#_int1 * * IOBN Interrupt Summary Register * This register contains the different interrupt-summary bits of the IOBN. */ union bdk_iobnx_int1 { uint64_t u; struct bdk_iobnx_int1_s { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_1_63 : 63; uint64_t gibm_f : 1; /**< [ 0: 0](R/W1C/H) GIBM on NCB0 received a STDN with fault. */ #else /* Word 0 - Little Endian */ uint64_t gibm_f : 1; /**< [ 0: 0](R/W1C/H) GIBM on NCB0 received a STDN with fault. */ uint64_t reserved_1_63 : 63; #endif /* Word 0 - End */ } s; /* struct bdk_iobnx_int1_s cn; */ }; typedef union bdk_iobnx_int1 bdk_iobnx_int1_t; static inline uint64_t BDK_IOBNX_INT1(unsigned long a) __attribute__ ((pure, always_inline)); static inline uint64_t BDK_IOBNX_INT1(unsigned long a) { if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX) && (a<=1)) return 0x87e0f000a000ll + 0x1000000ll * ((a) & 0x1); __bdk_csr_fatal("IOBNX_INT1", 1, a, 0, 0, 0); } #define typedef_BDK_IOBNX_INT1(a) bdk_iobnx_int1_t #define bustype_BDK_IOBNX_INT1(a) BDK_CSR_TYPE_RSL #define basename_BDK_IOBNX_INT1(a) "IOBNX_INT1" #define device_bar_BDK_IOBNX_INT1(a) 0x0 /* PF_BAR0 */ #define busnum_BDK_IOBNX_INT1(a) (a) #define arguments_BDK_IOBNX_INT1(a) (a),-1,-1,-1 /** * Register (RSL) iobn#_int1_ena_w1c * * IOBN Interrupt Enable Clear Register * This register clears interrupt enable bits. */ union bdk_iobnx_int1_ena_w1c { uint64_t u; struct bdk_iobnx_int1_ena_w1c_s { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_1_63 : 63; uint64_t gibm_f : 1; /**< [ 0: 0](R/W1C/H) Reads or clears enable for IOBN(0..1)_INT1[GIBM_F]. */ #else /* Word 0 - Little Endian */ uint64_t gibm_f : 1; /**< [ 0: 0](R/W1C/H) Reads or clears enable for IOBN(0..1)_INT1[GIBM_F]. */ uint64_t reserved_1_63 : 63; #endif /* Word 0 - End */ } s; /* struct bdk_iobnx_int1_ena_w1c_s cn; */ }; typedef union bdk_iobnx_int1_ena_w1c bdk_iobnx_int1_ena_w1c_t; static inline uint64_t BDK_IOBNX_INT1_ENA_W1C(unsigned long a) __attribute__ ((pure, always_inline)); static inline uint64_t BDK_IOBNX_INT1_ENA_W1C(unsigned long a) { if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX) && (a<=1)) return 0x87e0f000a010ll + 0x1000000ll * ((a) & 0x1); __bdk_csr_fatal("IOBNX_INT1_ENA_W1C", 1, a, 0, 0, 0); } #define typedef_BDK_IOBNX_INT1_ENA_W1C(a) bdk_iobnx_int1_ena_w1c_t #define bustype_BDK_IOBNX_INT1_ENA_W1C(a) BDK_CSR_TYPE_RSL #define basename_BDK_IOBNX_INT1_ENA_W1C(a) "IOBNX_INT1_ENA_W1C" #define device_bar_BDK_IOBNX_INT1_ENA_W1C(a) 0x0 /* PF_BAR0 */ #define busnum_BDK_IOBNX_INT1_ENA_W1C(a) (a) #define arguments_BDK_IOBNX_INT1_ENA_W1C(a) (a),-1,-1,-1 /** * Register (RSL) iobn#_int1_ena_w1s * * IOBN Interrupt Enable Set Register * This register sets interrupt enable bits. */ union bdk_iobnx_int1_ena_w1s { uint64_t u; struct bdk_iobnx_int1_ena_w1s_s { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_1_63 : 63; uint64_t gibm_f : 1; /**< [ 0: 0](R/W1S/H) Reads or sets enable for IOBN(0..1)_INT1[GIBM_F]. */ #else /* Word 0 - Little Endian */ uint64_t gibm_f : 1; /**< [ 0: 0](R/W1S/H) Reads or sets enable for IOBN(0..1)_INT1[GIBM_F]. */ uint64_t reserved_1_63 : 63; #endif /* Word 0 - End */ } s; /* struct bdk_iobnx_int1_ena_w1s_s cn; */ }; typedef union bdk_iobnx_int1_ena_w1s bdk_iobnx_int1_ena_w1s_t; static inline uint64_t BDK_IOBNX_INT1_ENA_W1S(unsigned long a) __attribute__ ((pure, always_inline)); static inline uint64_t BDK_IOBNX_INT1_ENA_W1S(unsigned long a) { if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX) && (a<=1)) return 0x87e0f000a018ll + 0x1000000ll * ((a) & 0x1); __bdk_csr_fatal("IOBNX_INT1_ENA_W1S", 1, a, 0, 0, 0); } #define typedef_BDK_IOBNX_INT1_ENA_W1S(a) bdk_iobnx_int1_ena_w1s_t #define bustype_BDK_IOBNX_INT1_ENA_W1S(a) BDK_CSR_TYPE_RSL #define basename_BDK_IOBNX_INT1_ENA_W1S(a) "IOBNX_INT1_ENA_W1S" #define device_bar_BDK_IOBNX_INT1_ENA_W1S(a) 0x0 /* PF_BAR0 */ #define busnum_BDK_IOBNX_INT1_ENA_W1S(a) (a) #define arguments_BDK_IOBNX_INT1_ENA_W1S(a) (a),-1,-1,-1 /** * Register (RSL) iobn#_int1_w1s * * IOBN Interrupt Set Register * This register sets interrupt bits. */ union bdk_iobnx_int1_w1s { uint64_t u; struct bdk_iobnx_int1_w1s_s { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_1_63 : 63; uint64_t gibm_f : 1; /**< [ 0: 0](R/W1S/H) Reads or sets IOBN(0..1)_INT1[GIBM_F]. */ #else /* Word 0 - Little Endian */ uint64_t gibm_f : 1; /**< [ 0: 0](R/W1S/H) Reads or sets IOBN(0..1)_INT1[GIBM_F]. */ uint64_t reserved_1_63 : 63; #endif /* Word 0 - End */ } s; /* struct bdk_iobnx_int1_w1s_s cn; */ }; typedef union bdk_iobnx_int1_w1s bdk_iobnx_int1_w1s_t; static inline uint64_t BDK_IOBNX_INT1_W1S(unsigned long a) __attribute__ ((pure, always_inline)); static inline uint64_t BDK_IOBNX_INT1_W1S(unsigned long a) { if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX) && (a<=1)) return 0x87e0f000a008ll + 0x1000000ll * ((a) & 0x1); __bdk_csr_fatal("IOBNX_INT1_W1S", 1, a, 0, 0, 0); } #define typedef_BDK_IOBNX_INT1_W1S(a) bdk_iobnx_int1_w1s_t #define bustype_BDK_IOBNX_INT1_W1S(a) BDK_CSR_TYPE_RSL #define basename_BDK_IOBNX_INT1_W1S(a) "IOBNX_INT1_W1S" #define device_bar_BDK_IOBNX_INT1_W1S(a) 0x0 /* PF_BAR0 */ #define busnum_BDK_IOBNX_INT1_W1S(a) (a) #define arguments_BDK_IOBNX_INT1_W1S(a) (a),-1,-1,-1 /** * Register (RSL) iobn#_int_ena_w1c * * IOBN Interrupt Enable Clear Register * This register clears interrupt enable bits. */ union bdk_iobnx_int_ena_w1c { uint64_t u; struct bdk_iobnx_int_ena_w1c_s { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t pem_sie : 1; /**< [ 63: 63](R/W1C/H) Reads or clears enable for IOBN(0..1)_INT_SUM[PEM_SIE]. */ uint64_t ied0_dbe : 31; /**< [ 62: 32](R/W1C/H) Reads or clears enable for IOBN(0..1)_INT_SUM[IED0_DBE]. Internal: gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t reserved_0_31 : 32; #else /* Word 0 - Little Endian */ uint64_t reserved_0_31 : 32; uint64_t ied0_dbe : 31; /**< [ 62: 32](R/W1C/H) Reads or clears enable for IOBN(0..1)_INT_SUM[IED0_DBE]. Internal: gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t pem_sie : 1; /**< [ 63: 63](R/W1C/H) Reads or clears enable for IOBN(0..1)_INT_SUM[PEM_SIE]. */ #endif /* Word 0 - End */ } s; struct bdk_iobnx_int_ena_w1c_cn88xxp1 { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_60_63 : 4; uint64_t ied0_dbe : 28; /**< [ 59: 32](R/W1C/H) Reads or clears enable for IOBN(0..1)_INT_SUM[IED0_DBE]. Internal: gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t reserved_28_31 : 4; uint64_t ied0_sbe : 28; /**< [ 27: 0](R/W1C/H) Reads or clears enable for IOBN(0..1)_INT_SUM[IED0_SBE]. Internal: gmr_ixofifo_sbe_sclk, icc0_xmc_fif_sbe, icc1_xmc_fif_sbe, icc_xmc_fifo_ecc_sbe, sli_preq_0_sbe_sclk, sli_req_0_sbe_sclk, sli_preq_1_sbe_sclk, sli_req_1_sbe_sclk, sli_preq_2_sbe_sclk, sli_req_2_sbe_sclk, ixo_smmu_mem0_sbe_sclk, iop_breq_fifo0_sbe, iop_breq_fifo1_sbe , iop_breq_fifo2_sbe, iop_breq_fifo3_sbe , iop_ffifo_sbe_sclk, rsd_mem0_sbe, rsd_mem1_sbe, ics_cmd_fifo_sbe_sclk, ixo_xmd_mem1_sbe_sclk, ixo_xmd_mem0_sbe_sclk, iobn_iorn_ffifo0__sbe_sclk, iobn_iorn_ffifo1__sbe_sclk, irp1_flid_mem_sbe, irp0_flid_mem_sbe, ixo_icc_fifo0_sbe_in_sclk, ixo_icc_fifo1_sbe_in_sclk, ixo_ics_mem_sbe_in_sclk. */ #else /* Word 0 - Little Endian */ uint64_t ied0_sbe : 28; /**< [ 27: 0](R/W1C/H) Reads or clears enable for IOBN(0..1)_INT_SUM[IED0_SBE]. Internal: gmr_ixofifo_sbe_sclk, icc0_xmc_fif_sbe, icc1_xmc_fif_sbe, icc_xmc_fifo_ecc_sbe, sli_preq_0_sbe_sclk, sli_req_0_sbe_sclk, sli_preq_1_sbe_sclk, sli_req_1_sbe_sclk, sli_preq_2_sbe_sclk, sli_req_2_sbe_sclk, ixo_smmu_mem0_sbe_sclk, iop_breq_fifo0_sbe, iop_breq_fifo1_sbe , iop_breq_fifo2_sbe, iop_breq_fifo3_sbe , iop_ffifo_sbe_sclk, rsd_mem0_sbe, rsd_mem1_sbe, ics_cmd_fifo_sbe_sclk, ixo_xmd_mem1_sbe_sclk, ixo_xmd_mem0_sbe_sclk, iobn_iorn_ffifo0__sbe_sclk, iobn_iorn_ffifo1__sbe_sclk, irp1_flid_mem_sbe, irp0_flid_mem_sbe, ixo_icc_fifo0_sbe_in_sclk, ixo_icc_fifo1_sbe_in_sclk, ixo_ics_mem_sbe_in_sclk. */ uint64_t reserved_28_31 : 4; uint64_t ied0_dbe : 28; /**< [ 59: 32](R/W1C/H) Reads or clears enable for IOBN(0..1)_INT_SUM[IED0_DBE]. Internal: gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t reserved_60_63 : 4; #endif /* Word 0 - End */ } cn88xxp1; struct bdk_iobnx_int_ena_w1c_cn9 { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_4_63 : 60; uint64_t ncbo_ncb2_psn : 1; /**< [ 3: 3](R/W1C/H) Reads or clears enable for IOBN(0..1)_INT_SUM[NCBO_NCB2_PSN]. */ uint64_t ncbo_ncb1_psn : 1; /**< [ 2: 2](R/W1C/H) Reads or clears enable for IOBN(0..1)_INT_SUM[NCBO_NCB1_PSN]. */ uint64_t ncbo_ncb0_psn : 1; /**< [ 1: 1](R/W1C/H) Reads or clears enable for IOBN(0..1)_INT_SUM[NCBO_NCB0_PSN]. */ uint64_t ncbo_to : 1; /**< [ 0: 0](R/W1C/H) Reads or clears enable for IOBN(0..1)_INT_SUM[NCBO_TO]. */ #else /* Word 0 - Little Endian */ uint64_t ncbo_to : 1; /**< [ 0: 0](R/W1C/H) Reads or clears enable for IOBN(0..1)_INT_SUM[NCBO_TO]. */ uint64_t ncbo_ncb0_psn : 1; /**< [ 1: 1](R/W1C/H) Reads or clears enable for IOBN(0..1)_INT_SUM[NCBO_NCB0_PSN]. */ uint64_t ncbo_ncb1_psn : 1; /**< [ 2: 2](R/W1C/H) Reads or clears enable for IOBN(0..1)_INT_SUM[NCBO_NCB1_PSN]. */ uint64_t ncbo_ncb2_psn : 1; /**< [ 3: 3](R/W1C/H) Reads or clears enable for IOBN(0..1)_INT_SUM[NCBO_NCB2_PSN]. */ uint64_t reserved_4_63 : 60; #endif /* Word 0 - End */ } cn9; struct bdk_iobnx_int_ena_w1c_cn81xx { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t pem_sie : 1; /**< [ 63: 63](R/W1C/H) Reads or clears enable for IOBN(0)_INT_SUM[PEM_SIE]. */ uint64_t reserved_61_62 : 2; uint64_t ied0_dbe : 29; /**< [ 60: 32](R/W1C/H) Reads or clears enable for IOBN(0)_INT_SUM[IED0_DBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t reserved_29_31 : 3; uint64_t ied0_sbe : 29; /**< [ 28: 0](R/W1C/H) Reads or clears enable for IOBN(0)_INT_SUM[IED0_SBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_sbe_sclk, icc0_xmc_fif_sbe, icc1_xmc_fif_sbe, icc_xmc_fifo_ecc_sbe, sli_preq_0_sbe_sclk, sli_req_0_sbe_sclk, sli_preq_1_sbe_sclk, sli_req_1_sbe_sclk, sli_preq_2_sbe_sclk, sli_req_2_sbe_sclk, ixo_smmu_mem0_sbe_sclk, iop_breq_fifo0_sbe, iop_breq_fifo1_sbe , iop_breq_fifo2_sbe, iop_breq_fifo3_sbe , iop_ffifo_sbe_sclk, rsd_mem0_sbe, rsd_mem1_sbe, ics_cmd_fifo_sbe_sclk, ixo_xmd_mem1_sbe_sclk, ixo_xmd_mem0_sbe_sclk, iobn_iorn_ffifo0__sbe_sclk, iobn_iorn_ffifo1__sbe_sclk, irp1_flid_mem_sbe, irp0_flid_mem_sbe, ixo_icc_fifo0_sbe_in_sclk, ixo_icc_fifo1_sbe_in_sclk, ixo_ics_mem_sbe_in_sclk. */ #else /* Word 0 - Little Endian */ uint64_t ied0_sbe : 29; /**< [ 28: 0](R/W1C/H) Reads or clears enable for IOBN(0)_INT_SUM[IED0_SBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_sbe_sclk, icc0_xmc_fif_sbe, icc1_xmc_fif_sbe, icc_xmc_fifo_ecc_sbe, sli_preq_0_sbe_sclk, sli_req_0_sbe_sclk, sli_preq_1_sbe_sclk, sli_req_1_sbe_sclk, sli_preq_2_sbe_sclk, sli_req_2_sbe_sclk, ixo_smmu_mem0_sbe_sclk, iop_breq_fifo0_sbe, iop_breq_fifo1_sbe , iop_breq_fifo2_sbe, iop_breq_fifo3_sbe , iop_ffifo_sbe_sclk, rsd_mem0_sbe, rsd_mem1_sbe, ics_cmd_fifo_sbe_sclk, ixo_xmd_mem1_sbe_sclk, ixo_xmd_mem0_sbe_sclk, iobn_iorn_ffifo0__sbe_sclk, iobn_iorn_ffifo1__sbe_sclk, irp1_flid_mem_sbe, irp0_flid_mem_sbe, ixo_icc_fifo0_sbe_in_sclk, ixo_icc_fifo1_sbe_in_sclk, ixo_ics_mem_sbe_in_sclk. */ uint64_t reserved_29_31 : 3; uint64_t ied0_dbe : 29; /**< [ 60: 32](R/W1C/H) Reads or clears enable for IOBN(0)_INT_SUM[IED0_DBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t reserved_61_62 : 2; uint64_t pem_sie : 1; /**< [ 63: 63](R/W1C/H) Reads or clears enable for IOBN(0)_INT_SUM[PEM_SIE]. */ #endif /* Word 0 - End */ } cn81xx; struct bdk_iobnx_int_ena_w1c_cn83xx { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t pem_sie : 1; /**< [ 63: 63](R/W1C/H) Reads or clears enable for IOBN(0..1)_INT_SUM[PEM_SIE]. */ uint64_t ied0_dbe : 31; /**< [ 62: 32](R/W1C/H) Reads or clears enable for IOBN(0..1)_INT_SUM[IED0_DBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, sli_preq_3_dbe_sclk, sli_req_3_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t reserved_31 : 1; uint64_t ied0_sbe : 31; /**< [ 30: 0](R/W1C/H) Reads or clears enable for IOBN(0..1)_INT_SUM[IED0_SBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_sbe_sclk, icc0_xmc_fif_sbe, icc1_xmc_fif_sbe, icc_xmc_fifo_ecc_sbe, sli_preq_0_sbe_sclk, sli_req_0_sbe_sclk, sli_preq_1_sbe_sclk, sli_req_1_sbe_sclk, sli_preq_2_sbe_sclk, sli_req_2_sbe_sclk, sli_preq_3_sbe_sclk, sli_req_3_sbe_sclk, ixo_smmu_mem0_sbe_sclk, iop_breq_fifo0_sbe, iop_breq_fifo1_sbe , iop_breq_fifo2_sbe, iop_breq_fifo3_sbe , iop_ffifo_sbe_sclk, rsd_mem0_sbe, rsd_mem1_sbe, ics_cmd_fifo_sbe_sclk, ixo_xmd_mem1_sbe_sclk, ixo_xmd_mem0_sbe_sclk, iobn_iorn_ffifo0__sbe_sclk, iobn_iorn_ffifo1__sbe_sclk, irp1_flid_mem_sbe, irp0_flid_mem_sbe, ixo_icc_fifo0_sbe_in_sclk, ixo_icc_fifo1_sbe_in_sclk, ixo_ics_mem_sbe_in_sclk. */ #else /* Word 0 - Little Endian */ uint64_t ied0_sbe : 31; /**< [ 30: 0](R/W1C/H) Reads or clears enable for IOBN(0..1)_INT_SUM[IED0_SBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_sbe_sclk, icc0_xmc_fif_sbe, icc1_xmc_fif_sbe, icc_xmc_fifo_ecc_sbe, sli_preq_0_sbe_sclk, sli_req_0_sbe_sclk, sli_preq_1_sbe_sclk, sli_req_1_sbe_sclk, sli_preq_2_sbe_sclk, sli_req_2_sbe_sclk, sli_preq_3_sbe_sclk, sli_req_3_sbe_sclk, ixo_smmu_mem0_sbe_sclk, iop_breq_fifo0_sbe, iop_breq_fifo1_sbe , iop_breq_fifo2_sbe, iop_breq_fifo3_sbe , iop_ffifo_sbe_sclk, rsd_mem0_sbe, rsd_mem1_sbe, ics_cmd_fifo_sbe_sclk, ixo_xmd_mem1_sbe_sclk, ixo_xmd_mem0_sbe_sclk, iobn_iorn_ffifo0__sbe_sclk, iobn_iorn_ffifo1__sbe_sclk, irp1_flid_mem_sbe, irp0_flid_mem_sbe, ixo_icc_fifo0_sbe_in_sclk, ixo_icc_fifo1_sbe_in_sclk, ixo_ics_mem_sbe_in_sclk. */ uint64_t reserved_31 : 1; uint64_t ied0_dbe : 31; /**< [ 62: 32](R/W1C/H) Reads or clears enable for IOBN(0..1)_INT_SUM[IED0_DBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, sli_preq_3_dbe_sclk, sli_req_3_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t pem_sie : 1; /**< [ 63: 63](R/W1C/H) Reads or clears enable for IOBN(0..1)_INT_SUM[PEM_SIE]. */ #endif /* Word 0 - End */ } cn83xx; struct bdk_iobnx_int_ena_w1c_cn88xxp2 { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t pem_sie : 1; /**< [ 63: 63](R/W1C/H) Reads or clears enable for IOBN(0..1)_INT_SUM[PEM_SIE]. */ uint64_t reserved_61_62 : 2; uint64_t ied0_dbe : 29; /**< [ 60: 32](R/W1C/H) Reads or clears enable for IOBN(0..1)_INT_SUM[IED0_DBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t reserved_29_31 : 3; uint64_t ied0_sbe : 29; /**< [ 28: 0](R/W1C/H) Reads or clears enable for IOBN(0..1)_INT_SUM[IED0_SBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_sbe_sclk, icc0_xmc_fif_sbe, icc1_xmc_fif_sbe, icc_xmc_fifo_ecc_sbe, sli_preq_0_sbe_sclk, sli_req_0_sbe_sclk, sli_preq_1_sbe_sclk, sli_req_1_sbe_sclk, sli_preq_2_sbe_sclk, sli_req_2_sbe_sclk, ixo_smmu_mem0_sbe_sclk, iop_breq_fifo0_sbe, iop_breq_fifo1_sbe , iop_breq_fifo2_sbe, iop_breq_fifo3_sbe , iop_ffifo_sbe_sclk, rsd_mem0_sbe, rsd_mem1_sbe, ics_cmd_fifo_sbe_sclk, ixo_xmd_mem1_sbe_sclk, ixo_xmd_mem0_sbe_sclk, iobn_iorn_ffifo0__sbe_sclk, iobn_iorn_ffifo1__sbe_sclk, irp1_flid_mem_sbe, irp0_flid_mem_sbe, ixo_icc_fifo0_sbe_in_sclk, ixo_icc_fifo1_sbe_in_sclk, ixo_ics_mem_sbe_in_sclk. */ #else /* Word 0 - Little Endian */ uint64_t ied0_sbe : 29; /**< [ 28: 0](R/W1C/H) Reads or clears enable for IOBN(0..1)_INT_SUM[IED0_SBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_sbe_sclk, icc0_xmc_fif_sbe, icc1_xmc_fif_sbe, icc_xmc_fifo_ecc_sbe, sli_preq_0_sbe_sclk, sli_req_0_sbe_sclk, sli_preq_1_sbe_sclk, sli_req_1_sbe_sclk, sli_preq_2_sbe_sclk, sli_req_2_sbe_sclk, ixo_smmu_mem0_sbe_sclk, iop_breq_fifo0_sbe, iop_breq_fifo1_sbe , iop_breq_fifo2_sbe, iop_breq_fifo3_sbe , iop_ffifo_sbe_sclk, rsd_mem0_sbe, rsd_mem1_sbe, ics_cmd_fifo_sbe_sclk, ixo_xmd_mem1_sbe_sclk, ixo_xmd_mem0_sbe_sclk, iobn_iorn_ffifo0__sbe_sclk, iobn_iorn_ffifo1__sbe_sclk, irp1_flid_mem_sbe, irp0_flid_mem_sbe, ixo_icc_fifo0_sbe_in_sclk, ixo_icc_fifo1_sbe_in_sclk, ixo_ics_mem_sbe_in_sclk. */ uint64_t reserved_29_31 : 3; uint64_t ied0_dbe : 29; /**< [ 60: 32](R/W1C/H) Reads or clears enable for IOBN(0..1)_INT_SUM[IED0_DBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t reserved_61_62 : 2; uint64_t pem_sie : 1; /**< [ 63: 63](R/W1C/H) Reads or clears enable for IOBN(0..1)_INT_SUM[PEM_SIE]. */ #endif /* Word 0 - End */ } cn88xxp2; }; typedef union bdk_iobnx_int_ena_w1c bdk_iobnx_int_ena_w1c_t; static inline uint64_t BDK_IOBNX_INT_ENA_W1C(unsigned long a) __attribute__ ((pure, always_inline)); static inline uint64_t BDK_IOBNX_INT_ENA_W1C(unsigned long a) { if (CAVIUM_IS_MODEL(CAVIUM_CN81XX) && (a==0)) return 0x87e0f0008000ll + 0x1000000ll * ((a) & 0x0); if (CAVIUM_IS_MODEL(CAVIUM_CN83XX) && (a<=1)) return 0x87e0f0008000ll + 0x1000000ll * ((a) & 0x1); if (CAVIUM_IS_MODEL(CAVIUM_CN88XX) && (a<=1)) return 0x87e0f0008000ll + 0x1000000ll * ((a) & 0x1); if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX) && (a<=1)) return 0x87e0f0008000ll + 0x1000000ll * ((a) & 0x1); __bdk_csr_fatal("IOBNX_INT_ENA_W1C", 1, a, 0, 0, 0); } #define typedef_BDK_IOBNX_INT_ENA_W1C(a) bdk_iobnx_int_ena_w1c_t #define bustype_BDK_IOBNX_INT_ENA_W1C(a) BDK_CSR_TYPE_RSL #define basename_BDK_IOBNX_INT_ENA_W1C(a) "IOBNX_INT_ENA_W1C" #define device_bar_BDK_IOBNX_INT_ENA_W1C(a) 0x0 /* PF_BAR0 */ #define busnum_BDK_IOBNX_INT_ENA_W1C(a) (a) #define arguments_BDK_IOBNX_INT_ENA_W1C(a) (a),-1,-1,-1 /** * Register (RSL) iobn#_int_ena_w1s * * IOBN Interrupt Enable Set Register * This register sets interrupt enable bits. */ union bdk_iobnx_int_ena_w1s { uint64_t u; struct bdk_iobnx_int_ena_w1s_s { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t pem_sie : 1; /**< [ 63: 63](R/W1S/H) Reads or sets enable for IOBN(0..1)_INT_SUM[PEM_SIE]. */ uint64_t ied0_dbe : 31; /**< [ 62: 32](R/W1S/H) Reads or sets enable for IOBN(0..1)_INT_SUM[IED0_DBE]. Internal: gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t reserved_0_31 : 32; #else /* Word 0 - Little Endian */ uint64_t reserved_0_31 : 32; uint64_t ied0_dbe : 31; /**< [ 62: 32](R/W1S/H) Reads or sets enable for IOBN(0..1)_INT_SUM[IED0_DBE]. Internal: gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t pem_sie : 1; /**< [ 63: 63](R/W1S/H) Reads or sets enable for IOBN(0..1)_INT_SUM[PEM_SIE]. */ #endif /* Word 0 - End */ } s; struct bdk_iobnx_int_ena_w1s_cn88xxp1 { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_60_63 : 4; uint64_t ied0_dbe : 28; /**< [ 59: 32](R/W1S/H) Reads or sets enable for IOBN(0..1)_INT_SUM[IED0_DBE]. Internal: gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t reserved_28_31 : 4; uint64_t ied0_sbe : 28; /**< [ 27: 0](R/W1S/H) Reads or sets enable for IOBN(0..1)_INT_SUM[IED0_SBE]. Internal: gmr_ixofifo_sbe_sclk, icc0_xmc_fif_sbe, icc1_xmc_fif_sbe, icc_xmc_fifo_ecc_sbe, sli_preq_0_sbe_sclk, sli_req_0_sbe_sclk, sli_preq_1_sbe_sclk, sli_req_1_sbe_sclk, sli_preq_2_sbe_sclk, sli_req_2_sbe_sclk, ixo_smmu_mem0_sbe_sclk, iop_breq_fifo0_sbe, iop_breq_fifo1_sbe , iop_breq_fifo2_sbe, iop_breq_fifo3_sbe , iop_ffifo_sbe_sclk, rsd_mem0_sbe, rsd_mem1_sbe, ics_cmd_fifo_sbe_sclk, ixo_xmd_mem1_sbe_sclk, ixo_xmd_mem0_sbe_sclk, iobn_iorn_ffifo0__sbe_sclk, iobn_iorn_ffifo1__sbe_sclk, irp1_flid_mem_sbe, irp0_flid_mem_sbe, ixo_icc_fifo0_sbe_in_sclk, ixo_icc_fifo1_sbe_in_sclk, ixo_ics_mem_sbe_in_sclk. */ #else /* Word 0 - Little Endian */ uint64_t ied0_sbe : 28; /**< [ 27: 0](R/W1S/H) Reads or sets enable for IOBN(0..1)_INT_SUM[IED0_SBE]. Internal: gmr_ixofifo_sbe_sclk, icc0_xmc_fif_sbe, icc1_xmc_fif_sbe, icc_xmc_fifo_ecc_sbe, sli_preq_0_sbe_sclk, sli_req_0_sbe_sclk, sli_preq_1_sbe_sclk, sli_req_1_sbe_sclk, sli_preq_2_sbe_sclk, sli_req_2_sbe_sclk, ixo_smmu_mem0_sbe_sclk, iop_breq_fifo0_sbe, iop_breq_fifo1_sbe , iop_breq_fifo2_sbe, iop_breq_fifo3_sbe , iop_ffifo_sbe_sclk, rsd_mem0_sbe, rsd_mem1_sbe, ics_cmd_fifo_sbe_sclk, ixo_xmd_mem1_sbe_sclk, ixo_xmd_mem0_sbe_sclk, iobn_iorn_ffifo0__sbe_sclk, iobn_iorn_ffifo1__sbe_sclk, irp1_flid_mem_sbe, irp0_flid_mem_sbe, ixo_icc_fifo0_sbe_in_sclk, ixo_icc_fifo1_sbe_in_sclk, ixo_ics_mem_sbe_in_sclk. */ uint64_t reserved_28_31 : 4; uint64_t ied0_dbe : 28; /**< [ 59: 32](R/W1S/H) Reads or sets enable for IOBN(0..1)_INT_SUM[IED0_DBE]. Internal: gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t reserved_60_63 : 4; #endif /* Word 0 - End */ } cn88xxp1; struct bdk_iobnx_int_ena_w1s_cn9 { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_4_63 : 60; uint64_t ncbo_ncb2_psn : 1; /**< [ 3: 3](R/W1S/H) Reads or sets enable for IOBN(0..1)_INT_SUM[NCBO_NCB2_PSN]. */ uint64_t ncbo_ncb1_psn : 1; /**< [ 2: 2](R/W1S/H) Reads or sets enable for IOBN(0..1)_INT_SUM[NCBO_NCB1_PSN]. */ uint64_t ncbo_ncb0_psn : 1; /**< [ 1: 1](R/W1S/H) Reads or sets enable for IOBN(0..1)_INT_SUM[NCBO_NCB0_PSN]. */ uint64_t ncbo_to : 1; /**< [ 0: 0](R/W1S/H) Reads or sets enable for IOBN(0..1)_INT_SUM[NCBO_TO]. */ #else /* Word 0 - Little Endian */ uint64_t ncbo_to : 1; /**< [ 0: 0](R/W1S/H) Reads or sets enable for IOBN(0..1)_INT_SUM[NCBO_TO]. */ uint64_t ncbo_ncb0_psn : 1; /**< [ 1: 1](R/W1S/H) Reads or sets enable for IOBN(0..1)_INT_SUM[NCBO_NCB0_PSN]. */ uint64_t ncbo_ncb1_psn : 1; /**< [ 2: 2](R/W1S/H) Reads or sets enable for IOBN(0..1)_INT_SUM[NCBO_NCB1_PSN]. */ uint64_t ncbo_ncb2_psn : 1; /**< [ 3: 3](R/W1S/H) Reads or sets enable for IOBN(0..1)_INT_SUM[NCBO_NCB2_PSN]. */ uint64_t reserved_4_63 : 60; #endif /* Word 0 - End */ } cn9; struct bdk_iobnx_int_ena_w1s_cn81xx { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t pem_sie : 1; /**< [ 63: 63](R/W1S/H) Reads or sets enable for IOBN(0)_INT_SUM[PEM_SIE]. */ uint64_t reserved_61_62 : 2; uint64_t ied0_dbe : 29; /**< [ 60: 32](R/W1S/H) Reads or sets enable for IOBN(0)_INT_SUM[IED0_DBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t reserved_29_31 : 3; uint64_t ied0_sbe : 29; /**< [ 28: 0](R/W1S/H) Reads or sets enable for IOBN(0)_INT_SUM[IED0_SBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_sbe_sclk, icc0_xmc_fif_sbe, icc1_xmc_fif_sbe, icc_xmc_fifo_ecc_sbe, sli_preq_0_sbe_sclk, sli_req_0_sbe_sclk, sli_preq_1_sbe_sclk, sli_req_1_sbe_sclk, sli_preq_2_sbe_sclk, sli_req_2_sbe_sclk, ixo_smmu_mem0_sbe_sclk, iop_breq_fifo0_sbe, iop_breq_fifo1_sbe , iop_breq_fifo2_sbe, iop_breq_fifo3_sbe , iop_ffifo_sbe_sclk, rsd_mem0_sbe, rsd_mem1_sbe, ics_cmd_fifo_sbe_sclk, ixo_xmd_mem1_sbe_sclk, ixo_xmd_mem0_sbe_sclk, iobn_iorn_ffifo0__sbe_sclk, iobn_iorn_ffifo1__sbe_sclk, irp1_flid_mem_sbe, irp0_flid_mem_sbe, ixo_icc_fifo0_sbe_in_sclk, ixo_icc_fifo1_sbe_in_sclk, ixo_ics_mem_sbe_in_sclk. */ #else /* Word 0 - Little Endian */ uint64_t ied0_sbe : 29; /**< [ 28: 0](R/W1S/H) Reads or sets enable for IOBN(0)_INT_SUM[IED0_SBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_sbe_sclk, icc0_xmc_fif_sbe, icc1_xmc_fif_sbe, icc_xmc_fifo_ecc_sbe, sli_preq_0_sbe_sclk, sli_req_0_sbe_sclk, sli_preq_1_sbe_sclk, sli_req_1_sbe_sclk, sli_preq_2_sbe_sclk, sli_req_2_sbe_sclk, ixo_smmu_mem0_sbe_sclk, iop_breq_fifo0_sbe, iop_breq_fifo1_sbe , iop_breq_fifo2_sbe, iop_breq_fifo3_sbe , iop_ffifo_sbe_sclk, rsd_mem0_sbe, rsd_mem1_sbe, ics_cmd_fifo_sbe_sclk, ixo_xmd_mem1_sbe_sclk, ixo_xmd_mem0_sbe_sclk, iobn_iorn_ffifo0__sbe_sclk, iobn_iorn_ffifo1__sbe_sclk, irp1_flid_mem_sbe, irp0_flid_mem_sbe, ixo_icc_fifo0_sbe_in_sclk, ixo_icc_fifo1_sbe_in_sclk, ixo_ics_mem_sbe_in_sclk. */ uint64_t reserved_29_31 : 3; uint64_t ied0_dbe : 29; /**< [ 60: 32](R/W1S/H) Reads or sets enable for IOBN(0)_INT_SUM[IED0_DBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t reserved_61_62 : 2; uint64_t pem_sie : 1; /**< [ 63: 63](R/W1S/H) Reads or sets enable for IOBN(0)_INT_SUM[PEM_SIE]. */ #endif /* Word 0 - End */ } cn81xx; struct bdk_iobnx_int_ena_w1s_cn83xx { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t pem_sie : 1; /**< [ 63: 63](R/W1S/H) Reads or sets enable for IOBN(0..1)_INT_SUM[PEM_SIE]. */ uint64_t ied0_dbe : 31; /**< [ 62: 32](R/W1S/H) Reads or sets enable for IOBN(0..1)_INT_SUM[IED0_DBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, sli_preq_3_dbe_sclk, sli_req_3_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t reserved_31 : 1; uint64_t ied0_sbe : 31; /**< [ 30: 0](R/W1S/H) Reads or sets enable for IOBN(0..1)_INT_SUM[IED0_SBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_sbe_sclk, icc0_xmc_fif_sbe, icc1_xmc_fif_sbe, icc_xmc_fifo_ecc_sbe, sli_preq_0_sbe_sclk, sli_req_0_sbe_sclk, sli_preq_1_sbe_sclk, sli_req_1_sbe_sclk, sli_preq_2_sbe_sclk, sli_req_2_sbe_sclk, sli_preq_3_sbe_sclk, sli_req_3_sbe_sclk, ixo_smmu_mem0_sbe_sclk, iop_breq_fifo0_sbe, iop_breq_fifo1_sbe , iop_breq_fifo2_sbe, iop_breq_fifo3_sbe , iop_ffifo_sbe_sclk, rsd_mem0_sbe, rsd_mem1_sbe, ics_cmd_fifo_sbe_sclk, ixo_xmd_mem1_sbe_sclk, ixo_xmd_mem0_sbe_sclk, iobn_iorn_ffifo0__sbe_sclk, iobn_iorn_ffifo1__sbe_sclk, irp1_flid_mem_sbe, irp0_flid_mem_sbe, ixo_icc_fifo0_sbe_in_sclk, ixo_icc_fifo1_sbe_in_sclk, ixo_ics_mem_sbe_in_sclk. */ #else /* Word 0 - Little Endian */ uint64_t ied0_sbe : 31; /**< [ 30: 0](R/W1S/H) Reads or sets enable for IOBN(0..1)_INT_SUM[IED0_SBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_sbe_sclk, icc0_xmc_fif_sbe, icc1_xmc_fif_sbe, icc_xmc_fifo_ecc_sbe, sli_preq_0_sbe_sclk, sli_req_0_sbe_sclk, sli_preq_1_sbe_sclk, sli_req_1_sbe_sclk, sli_preq_2_sbe_sclk, sli_req_2_sbe_sclk, sli_preq_3_sbe_sclk, sli_req_3_sbe_sclk, ixo_smmu_mem0_sbe_sclk, iop_breq_fifo0_sbe, iop_breq_fifo1_sbe , iop_breq_fifo2_sbe, iop_breq_fifo3_sbe , iop_ffifo_sbe_sclk, rsd_mem0_sbe, rsd_mem1_sbe, ics_cmd_fifo_sbe_sclk, ixo_xmd_mem1_sbe_sclk, ixo_xmd_mem0_sbe_sclk, iobn_iorn_ffifo0__sbe_sclk, iobn_iorn_ffifo1__sbe_sclk, irp1_flid_mem_sbe, irp0_flid_mem_sbe, ixo_icc_fifo0_sbe_in_sclk, ixo_icc_fifo1_sbe_in_sclk, ixo_ics_mem_sbe_in_sclk. */ uint64_t reserved_31 : 1; uint64_t ied0_dbe : 31; /**< [ 62: 32](R/W1S/H) Reads or sets enable for IOBN(0..1)_INT_SUM[IED0_DBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, sli_preq_3_dbe_sclk, sli_req_3_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t pem_sie : 1; /**< [ 63: 63](R/W1S/H) Reads or sets enable for IOBN(0..1)_INT_SUM[PEM_SIE]. */ #endif /* Word 0 - End */ } cn83xx; struct bdk_iobnx_int_ena_w1s_cn88xxp2 { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t pem_sie : 1; /**< [ 63: 63](R/W1S/H) Reads or sets enable for IOBN(0..1)_INT_SUM[PEM_SIE]. */ uint64_t reserved_61_62 : 2; uint64_t ied0_dbe : 29; /**< [ 60: 32](R/W1S/H) Reads or sets enable for IOBN(0..1)_INT_SUM[IED0_DBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t reserved_29_31 : 3; uint64_t ied0_sbe : 29; /**< [ 28: 0](R/W1S/H) Reads or sets enable for IOBN(0..1)_INT_SUM[IED0_SBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_sbe_sclk, icc0_xmc_fif_sbe, icc1_xmc_fif_sbe, icc_xmc_fifo_ecc_sbe, sli_preq_0_sbe_sclk, sli_req_0_sbe_sclk, sli_preq_1_sbe_sclk, sli_req_1_sbe_sclk, sli_preq_2_sbe_sclk, sli_req_2_sbe_sclk, ixo_smmu_mem0_sbe_sclk, iop_breq_fifo0_sbe, iop_breq_fifo1_sbe , iop_breq_fifo2_sbe, iop_breq_fifo3_sbe , iop_ffifo_sbe_sclk, rsd_mem0_sbe, rsd_mem1_sbe, ics_cmd_fifo_sbe_sclk, ixo_xmd_mem1_sbe_sclk, ixo_xmd_mem0_sbe_sclk, iobn_iorn_ffifo0__sbe_sclk, iobn_iorn_ffifo1__sbe_sclk, irp1_flid_mem_sbe, irp0_flid_mem_sbe, ixo_icc_fifo0_sbe_in_sclk, ixo_icc_fifo1_sbe_in_sclk, ixo_ics_mem_sbe_in_sclk. */ #else /* Word 0 - Little Endian */ uint64_t ied0_sbe : 29; /**< [ 28: 0](R/W1S/H) Reads or sets enable for IOBN(0..1)_INT_SUM[IED0_SBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_sbe_sclk, icc0_xmc_fif_sbe, icc1_xmc_fif_sbe, icc_xmc_fifo_ecc_sbe, sli_preq_0_sbe_sclk, sli_req_0_sbe_sclk, sli_preq_1_sbe_sclk, sli_req_1_sbe_sclk, sli_preq_2_sbe_sclk, sli_req_2_sbe_sclk, ixo_smmu_mem0_sbe_sclk, iop_breq_fifo0_sbe, iop_breq_fifo1_sbe , iop_breq_fifo2_sbe, iop_breq_fifo3_sbe , iop_ffifo_sbe_sclk, rsd_mem0_sbe, rsd_mem1_sbe, ics_cmd_fifo_sbe_sclk, ixo_xmd_mem1_sbe_sclk, ixo_xmd_mem0_sbe_sclk, iobn_iorn_ffifo0__sbe_sclk, iobn_iorn_ffifo1__sbe_sclk, irp1_flid_mem_sbe, irp0_flid_mem_sbe, ixo_icc_fifo0_sbe_in_sclk, ixo_icc_fifo1_sbe_in_sclk, ixo_ics_mem_sbe_in_sclk. */ uint64_t reserved_29_31 : 3; uint64_t ied0_dbe : 29; /**< [ 60: 32](R/W1S/H) Reads or sets enable for IOBN(0..1)_INT_SUM[IED0_DBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t reserved_61_62 : 2; uint64_t pem_sie : 1; /**< [ 63: 63](R/W1S/H) Reads or sets enable for IOBN(0..1)_INT_SUM[PEM_SIE]. */ #endif /* Word 0 - End */ } cn88xxp2; }; typedef union bdk_iobnx_int_ena_w1s bdk_iobnx_int_ena_w1s_t; static inline uint64_t BDK_IOBNX_INT_ENA_W1S(unsigned long a) __attribute__ ((pure, always_inline)); static inline uint64_t BDK_IOBNX_INT_ENA_W1S(unsigned long a) { if (CAVIUM_IS_MODEL(CAVIUM_CN81XX) && (a==0)) return 0x87e0f0009000ll + 0x1000000ll * ((a) & 0x0); if (CAVIUM_IS_MODEL(CAVIUM_CN83XX) && (a<=1)) return 0x87e0f0009000ll + 0x1000000ll * ((a) & 0x1); if (CAVIUM_IS_MODEL(CAVIUM_CN88XX) && (a<=1)) return 0x87e0f0009000ll + 0x1000000ll * ((a) & 0x1); if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX) && (a<=1)) return 0x87e0f0009000ll + 0x1000000ll * ((a) & 0x1); __bdk_csr_fatal("IOBNX_INT_ENA_W1S", 1, a, 0, 0, 0); } #define typedef_BDK_IOBNX_INT_ENA_W1S(a) bdk_iobnx_int_ena_w1s_t #define bustype_BDK_IOBNX_INT_ENA_W1S(a) BDK_CSR_TYPE_RSL #define basename_BDK_IOBNX_INT_ENA_W1S(a) "IOBNX_INT_ENA_W1S" #define device_bar_BDK_IOBNX_INT_ENA_W1S(a) 0x0 /* PF_BAR0 */ #define busnum_BDK_IOBNX_INT_ENA_W1S(a) (a) #define arguments_BDK_IOBNX_INT_ENA_W1S(a) (a),-1,-1,-1 /** * Register (RSL) iobn#_int_sum * * IOBN Interrupt Summary Register * This register contains the different interrupt-summary bits of the IOBN. */ union bdk_iobnx_int_sum { uint64_t u; struct bdk_iobnx_int_sum_s { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t pem_sie : 1; /**< [ 63: 63](R/W1C/H) PEM sent in an invalid stream ID, the transaction was returned with fault. Advisory notification only. */ uint64_t ied0_dbe : 31; /**< [ 62: 32](R/W1C/H) IED0 double-bit error. When set, an IED0 double-bit error has occurred. Internal: gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t reserved_0_31 : 32; #else /* Word 0 - Little Endian */ uint64_t reserved_0_31 : 32; uint64_t ied0_dbe : 31; /**< [ 62: 32](R/W1C/H) IED0 double-bit error. When set, an IED0 double-bit error has occurred. Internal: gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t pem_sie : 1; /**< [ 63: 63](R/W1C/H) PEM sent in an invalid stream ID, the transaction was returned with fault. Advisory notification only. */ #endif /* Word 0 - End */ } s; struct bdk_iobnx_int_sum_cn88xxp1 { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_60_63 : 4; uint64_t ied0_dbe : 28; /**< [ 59: 32](R/W1C/H) IED0 double-bit error. When set, an IED0 double-bit error has occurred. Internal: gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t reserved_28_31 : 4; uint64_t ied0_sbe : 28; /**< [ 27: 0](R/W1C/H) IED0 single-bit error. When set, an IED0 single-bit error has occurred. Internal: gmr_ixofifo_sbe_sclk, icc0_xmc_fif_sbe, icc1_xmc_fif_sbe, icc_xmc_fifo_ecc_sbe, sli_preq_0_sbe_sclk, sli_req_0_sbe_sclk, sli_preq_1_sbe_sclk, sli_req_1_sbe_sclk, sli_preq_2_sbe_sclk, sli_req_2_sbe_sclk, ixo_smmu_mem0_sbe_sclk, iop_breq_fifo0_sbe, iop_breq_fifo1_sbe , iop_breq_fifo2_sbe, iop_breq_fifo3_sbe , iop_ffifo_sbe_sclk, rsd_mem0_sbe, rsd_mem1_sbe, ics_cmd_fifo_sbe_sclk, ixo_xmd_mem1_sbe_sclk, ixo_xmd_mem0_sbe_sclk, iobn_iorn_ffifo0__sbe_sclk, iobn_iorn_ffifo1__sbe_sclk, irp1_flid_mem_sbe, irp0_flid_mem_sbe, ixo_icc_fifo0_sbe_in_sclk, ixo_icc_fifo1_sbe_in_sclk, ixo_ics_mem_sbe_in_sclk. */ #else /* Word 0 - Little Endian */ uint64_t ied0_sbe : 28; /**< [ 27: 0](R/W1C/H) IED0 single-bit error. When set, an IED0 single-bit error has occurred. Internal: gmr_ixofifo_sbe_sclk, icc0_xmc_fif_sbe, icc1_xmc_fif_sbe, icc_xmc_fifo_ecc_sbe, sli_preq_0_sbe_sclk, sli_req_0_sbe_sclk, sli_preq_1_sbe_sclk, sli_req_1_sbe_sclk, sli_preq_2_sbe_sclk, sli_req_2_sbe_sclk, ixo_smmu_mem0_sbe_sclk, iop_breq_fifo0_sbe, iop_breq_fifo1_sbe , iop_breq_fifo2_sbe, iop_breq_fifo3_sbe , iop_ffifo_sbe_sclk, rsd_mem0_sbe, rsd_mem1_sbe, ics_cmd_fifo_sbe_sclk, ixo_xmd_mem1_sbe_sclk, ixo_xmd_mem0_sbe_sclk, iobn_iorn_ffifo0__sbe_sclk, iobn_iorn_ffifo1__sbe_sclk, irp1_flid_mem_sbe, irp0_flid_mem_sbe, ixo_icc_fifo0_sbe_in_sclk, ixo_icc_fifo1_sbe_in_sclk, ixo_ics_mem_sbe_in_sclk. */ uint64_t reserved_28_31 : 4; uint64_t ied0_dbe : 28; /**< [ 59: 32](R/W1C/H) IED0 double-bit error. When set, an IED0 double-bit error has occurred. Internal: gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t reserved_60_63 : 4; #endif /* Word 0 - End */ } cn88xxp1; struct bdk_iobnx_int_sum_cn9 { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_4_63 : 60; uint64_t ncbo_ncb2_psn : 1; /**< [ 3: 3](R/W1C/H) NCBO bus2 store data with poison. IOBN()_NCBO()_PSN_STATUS saves the first error information. */ uint64_t ncbo_ncb1_psn : 1; /**< [ 2: 2](R/W1C/H) NCB1 bus0 store data with poison. IOBN()_NCBO()_PSN_STATUS saves the first error information. */ uint64_t ncbo_ncb0_psn : 1; /**< [ 1: 1](R/W1C/H) NCBO bus0 store data with poison. IOBN()_NCBO()_PSN_STATUS saves the first error information. */ uint64_t ncbo_to : 1; /**< [ 0: 0](R/W1C/H) NPR to a NCB-DEVICE has timed out. See IOBN()_NCBO_TO[SUB_TIME]. */ #else /* Word 0 - Little Endian */ uint64_t ncbo_to : 1; /**< [ 0: 0](R/W1C/H) NPR to a NCB-DEVICE has timed out. See IOBN()_NCBO_TO[SUB_TIME]. */ uint64_t ncbo_ncb0_psn : 1; /**< [ 1: 1](R/W1C/H) NCBO bus0 store data with poison. IOBN()_NCBO()_PSN_STATUS saves the first error information. */ uint64_t ncbo_ncb1_psn : 1; /**< [ 2: 2](R/W1C/H) NCB1 bus0 store data with poison. IOBN()_NCBO()_PSN_STATUS saves the first error information. */ uint64_t ncbo_ncb2_psn : 1; /**< [ 3: 3](R/W1C/H) NCBO bus2 store data with poison. IOBN()_NCBO()_PSN_STATUS saves the first error information. */ uint64_t reserved_4_63 : 60; #endif /* Word 0 - End */ } cn9; struct bdk_iobnx_int_sum_cn81xx { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t pem_sie : 1; /**< [ 63: 63](R/W1C/H) PEM sent in an invalid stream ID, the transaction was returned with fault. Advisory notification only. */ uint64_t reserved_61_62 : 2; uint64_t ied0_dbe : 29; /**< [ 60: 32](R/W1C/H) IED0 double-bit error. When set, an IED0 double-bit error has occurred. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t reserved_29_31 : 3; uint64_t ied0_sbe : 29; /**< [ 28: 0](R/W1C/H) IED0 single-bit error. When set, an IED0 single-bit error has occurred. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_sbe_sclk, icc0_xmc_fif_sbe, icc1_xmc_fif_sbe, icc_xmc_fifo_ecc_sbe, sli_preq_0_sbe_sclk, sli_req_0_sbe_sclk, sli_preq_1_sbe_sclk, sli_req_1_sbe_sclk, sli_preq_2_sbe_sclk, sli_req_2_sbe_sclk, ixo_smmu_mem0_sbe_sclk, iop_breq_fifo0_sbe, iop_breq_fifo1_sbe , iop_breq_fifo2_sbe, iop_breq_fifo3_sbe , iop_ffifo_sbe_sclk, rsd_mem0_sbe, rsd_mem1_sbe, ics_cmd_fifo_sbe_sclk, ixo_xmd_mem1_sbe_sclk, ixo_xmd_mem0_sbe_sclk, iobn_iorn_ffifo0__sbe_sclk, iobn_iorn_ffifo1__sbe_sclk, irp1_flid_mem_sbe, irp0_flid_mem_sbe, ixo_icc_fifo0_sbe_in_sclk, ixo_icc_fifo1_sbe_in_sclk, ixo_ics_mem_sbe_in_sclk. */ #else /* Word 0 - Little Endian */ uint64_t ied0_sbe : 29; /**< [ 28: 0](R/W1C/H) IED0 single-bit error. When set, an IED0 single-bit error has occurred. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_sbe_sclk, icc0_xmc_fif_sbe, icc1_xmc_fif_sbe, icc_xmc_fifo_ecc_sbe, sli_preq_0_sbe_sclk, sli_req_0_sbe_sclk, sli_preq_1_sbe_sclk, sli_req_1_sbe_sclk, sli_preq_2_sbe_sclk, sli_req_2_sbe_sclk, ixo_smmu_mem0_sbe_sclk, iop_breq_fifo0_sbe, iop_breq_fifo1_sbe , iop_breq_fifo2_sbe, iop_breq_fifo3_sbe , iop_ffifo_sbe_sclk, rsd_mem0_sbe, rsd_mem1_sbe, ics_cmd_fifo_sbe_sclk, ixo_xmd_mem1_sbe_sclk, ixo_xmd_mem0_sbe_sclk, iobn_iorn_ffifo0__sbe_sclk, iobn_iorn_ffifo1__sbe_sclk, irp1_flid_mem_sbe, irp0_flid_mem_sbe, ixo_icc_fifo0_sbe_in_sclk, ixo_icc_fifo1_sbe_in_sclk, ixo_ics_mem_sbe_in_sclk. */ uint64_t reserved_29_31 : 3; uint64_t ied0_dbe : 29; /**< [ 60: 32](R/W1C/H) IED0 double-bit error. When set, an IED0 double-bit error has occurred. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t reserved_61_62 : 2; uint64_t pem_sie : 1; /**< [ 63: 63](R/W1C/H) PEM sent in an invalid stream ID, the transaction was returned with fault. Advisory notification only. */ #endif /* Word 0 - End */ } cn81xx; struct bdk_iobnx_int_sum_cn83xx { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t pem_sie : 1; /**< [ 63: 63](R/W1C/H) PEM sent in an invalid stream ID, the transaction was returned with fault. Advisory notification only. */ uint64_t ied0_dbe : 31; /**< [ 62: 32](R/W1C/H) IED0 double-bit error. When set, an IED0 double-bit error has occurred. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, sli_preq_3_dbe_sclk, sli_req_3_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t reserved_31 : 1; uint64_t ied0_sbe : 31; /**< [ 30: 0](R/W1C/H) IED0 single-bit error. When set, an IED0 single-bit error has occurred. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_sbe_sclk, icc0_xmc_fif_sbe, icc1_xmc_fif_sbe, icc_xmc_fifo_ecc_sbe, sli_preq_0_sbe_sclk, sli_req_0_sbe_sclk, sli_preq_1_sbe_sclk, sli_req_1_sbe_sclk, sli_preq_2_sbe_sclk, sli_req_2_sbe_sclk, sli_preq_3_sbe_sclk, sli_req_3_sbe_sclk, ixo_smmu_mem0_sbe_sclk, iop_breq_fifo0_sbe, iop_breq_fifo1_sbe , iop_breq_fifo2_sbe, iop_breq_fifo3_sbe , iop_ffifo_sbe_sclk, rsd_mem0_sbe, rsd_mem1_sbe, ics_cmd_fifo_sbe_sclk, ixo_xmd_mem1_sbe_sclk, ixo_xmd_mem0_sbe_sclk, iobn_iorn_ffifo0__sbe_sclk, iobn_iorn_ffifo1__sbe_sclk, irp1_flid_mem_sbe, irp0_flid_mem_sbe, ixo_icc_fifo0_sbe_in_sclk, ixo_icc_fifo1_sbe_in_sclk, ixo_ics_mem_sbe_in_sclk. */ #else /* Word 0 - Little Endian */ uint64_t ied0_sbe : 31; /**< [ 30: 0](R/W1C/H) IED0 single-bit error. When set, an IED0 single-bit error has occurred. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_sbe_sclk, icc0_xmc_fif_sbe, icc1_xmc_fif_sbe, icc_xmc_fifo_ecc_sbe, sli_preq_0_sbe_sclk, sli_req_0_sbe_sclk, sli_preq_1_sbe_sclk, sli_req_1_sbe_sclk, sli_preq_2_sbe_sclk, sli_req_2_sbe_sclk, sli_preq_3_sbe_sclk, sli_req_3_sbe_sclk, ixo_smmu_mem0_sbe_sclk, iop_breq_fifo0_sbe, iop_breq_fifo1_sbe , iop_breq_fifo2_sbe, iop_breq_fifo3_sbe , iop_ffifo_sbe_sclk, rsd_mem0_sbe, rsd_mem1_sbe, ics_cmd_fifo_sbe_sclk, ixo_xmd_mem1_sbe_sclk, ixo_xmd_mem0_sbe_sclk, iobn_iorn_ffifo0__sbe_sclk, iobn_iorn_ffifo1__sbe_sclk, irp1_flid_mem_sbe, irp0_flid_mem_sbe, ixo_icc_fifo0_sbe_in_sclk, ixo_icc_fifo1_sbe_in_sclk, ixo_ics_mem_sbe_in_sclk. */ uint64_t reserved_31 : 1; uint64_t ied0_dbe : 31; /**< [ 62: 32](R/W1C/H) IED0 double-bit error. When set, an IED0 double-bit error has occurred. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, sli_preq_3_dbe_sclk, sli_req_3_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t pem_sie : 1; /**< [ 63: 63](R/W1C/H) PEM sent in an invalid stream ID, the transaction was returned with fault. Advisory notification only. */ #endif /* Word 0 - End */ } cn83xx; struct bdk_iobnx_int_sum_cn88xxp2 { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t pem_sie : 1; /**< [ 63: 63](R/W1C/H) PEM sent in an invalid stream ID. */ uint64_t reserved_61_62 : 2; uint64_t ied0_dbe : 29; /**< [ 60: 32](R/W1C/H) IED0 double-bit error. When set, an IED0 double-bit error has occurred. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t reserved_29_31 : 3; uint64_t ied0_sbe : 29; /**< [ 28: 0](R/W1C/H) IED0 single-bit error. When set, an IED0 single-bit error has occurred. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_sbe_sclk, icc0_xmc_fif_sbe, icc1_xmc_fif_sbe, icc_xmc_fifo_ecc_sbe, sli_preq_0_sbe_sclk, sli_req_0_sbe_sclk, sli_preq_1_sbe_sclk, sli_req_1_sbe_sclk, sli_preq_2_sbe_sclk, sli_req_2_sbe_sclk, ixo_smmu_mem0_sbe_sclk, iop_breq_fifo0_sbe, iop_breq_fifo1_sbe , iop_breq_fifo2_sbe, iop_breq_fifo3_sbe , iop_ffifo_sbe_sclk, rsd_mem0_sbe, rsd_mem1_sbe, ics_cmd_fifo_sbe_sclk, ixo_xmd_mem1_sbe_sclk, ixo_xmd_mem0_sbe_sclk, iobn_iorn_ffifo0__sbe_sclk, iobn_iorn_ffifo1__sbe_sclk, irp1_flid_mem_sbe, irp0_flid_mem_sbe, ixo_icc_fifo0_sbe_in_sclk, ixo_icc_fifo1_sbe_in_sclk, ixo_ics_mem_sbe_in_sclk. */ #else /* Word 0 - Little Endian */ uint64_t ied0_sbe : 29; /**< [ 28: 0](R/W1C/H) IED0 single-bit error. When set, an IED0 single-bit error has occurred. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_sbe_sclk, icc0_xmc_fif_sbe, icc1_xmc_fif_sbe, icc_xmc_fifo_ecc_sbe, sli_preq_0_sbe_sclk, sli_req_0_sbe_sclk, sli_preq_1_sbe_sclk, sli_req_1_sbe_sclk, sli_preq_2_sbe_sclk, sli_req_2_sbe_sclk, ixo_smmu_mem0_sbe_sclk, iop_breq_fifo0_sbe, iop_breq_fifo1_sbe , iop_breq_fifo2_sbe, iop_breq_fifo3_sbe , iop_ffifo_sbe_sclk, rsd_mem0_sbe, rsd_mem1_sbe, ics_cmd_fifo_sbe_sclk, ixo_xmd_mem1_sbe_sclk, ixo_xmd_mem0_sbe_sclk, iobn_iorn_ffifo0__sbe_sclk, iobn_iorn_ffifo1__sbe_sclk, irp1_flid_mem_sbe, irp0_flid_mem_sbe, ixo_icc_fifo0_sbe_in_sclk, ixo_icc_fifo1_sbe_in_sclk, ixo_ics_mem_sbe_in_sclk. */ uint64_t reserved_29_31 : 3; uint64_t ied0_dbe : 29; /**< [ 60: 32](R/W1C/H) IED0 double-bit error. When set, an IED0 double-bit error has occurred. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t reserved_61_62 : 2; uint64_t pem_sie : 1; /**< [ 63: 63](R/W1C/H) PEM sent in an invalid stream ID. */ #endif /* Word 0 - End */ } cn88xxp2; }; typedef union bdk_iobnx_int_sum bdk_iobnx_int_sum_t; static inline uint64_t BDK_IOBNX_INT_SUM(unsigned long a) __attribute__ ((pure, always_inline)); static inline uint64_t BDK_IOBNX_INT_SUM(unsigned long a) { if (CAVIUM_IS_MODEL(CAVIUM_CN81XX) && (a==0)) return 0x87e0f0006000ll + 0x1000000ll * ((a) & 0x0); if (CAVIUM_IS_MODEL(CAVIUM_CN83XX) && (a<=1)) return 0x87e0f0006000ll + 0x1000000ll * ((a) & 0x1); if (CAVIUM_IS_MODEL(CAVIUM_CN88XX) && (a<=1)) return 0x87e0f0006000ll + 0x1000000ll * ((a) & 0x1); if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX) && (a<=1)) return 0x87e0f0006000ll + 0x1000000ll * ((a) & 0x1); __bdk_csr_fatal("IOBNX_INT_SUM", 1, a, 0, 0, 0); } #define typedef_BDK_IOBNX_INT_SUM(a) bdk_iobnx_int_sum_t #define bustype_BDK_IOBNX_INT_SUM(a) BDK_CSR_TYPE_RSL #define basename_BDK_IOBNX_INT_SUM(a) "IOBNX_INT_SUM" #define device_bar_BDK_IOBNX_INT_SUM(a) 0x0 /* PF_BAR0 */ #define busnum_BDK_IOBNX_INT_SUM(a) (a) #define arguments_BDK_IOBNX_INT_SUM(a) (a),-1,-1,-1 /** * Register (RSL) iobn#_int_sum_w1s * * IOBN Interrupt Set Register * This register sets interrupt bits. */ union bdk_iobnx_int_sum_w1s { uint64_t u; struct bdk_iobnx_int_sum_w1s_s { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t pem_sie : 1; /**< [ 63: 63](R/W1S/H) Reads or sets IOBN(0..1)_INT_SUM[PEM_SIE]. */ uint64_t ied0_dbe : 31; /**< [ 62: 32](R/W1S/H) Reads or sets IOBN(0..1)_INT_SUM[IED0_DBE]. Internal: gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t reserved_0_31 : 32; #else /* Word 0 - Little Endian */ uint64_t reserved_0_31 : 32; uint64_t ied0_dbe : 31; /**< [ 62: 32](R/W1S/H) Reads or sets IOBN(0..1)_INT_SUM[IED0_DBE]. Internal: gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t pem_sie : 1; /**< [ 63: 63](R/W1S/H) Reads or sets IOBN(0..1)_INT_SUM[PEM_SIE]. */ #endif /* Word 0 - End */ } s; struct bdk_iobnx_int_sum_w1s_cn88xxp1 { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_60_63 : 4; uint64_t ied0_dbe : 28; /**< [ 59: 32](R/W1S/H) Reads or sets IOBN(0..1)_INT_SUM[IED0_DBE]. Internal: gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t reserved_28_31 : 4; uint64_t ied0_sbe : 28; /**< [ 27: 0](R/W1S/H) Reads or sets IOBN(0..1)_INT_SUM[IED0_SBE]. Internal: gmr_ixofifo_sbe_sclk, icc0_xmc_fif_sbe, icc1_xmc_fif_sbe, icc_xmc_fifo_ecc_sbe, sli_preq_0_sbe_sclk, sli_req_0_sbe_sclk, sli_preq_1_sbe_sclk, sli_req_1_sbe_sclk, sli_preq_2_sbe_sclk, sli_req_2_sbe_sclk, ixo_smmu_mem0_sbe_sclk, iop_breq_fifo0_sbe, iop_breq_fifo1_sbe , iop_breq_fifo2_sbe, iop_breq_fifo3_sbe , iop_ffifo_sbe_sclk, rsd_mem0_sbe, rsd_mem1_sbe, ics_cmd_fifo_sbe_sclk, ixo_xmd_mem1_sbe_sclk, ixo_xmd_mem0_sbe_sclk, iobn_iorn_ffifo0__sbe_sclk, iobn_iorn_ffifo1__sbe_sclk, irp1_flid_mem_sbe, irp0_flid_mem_sbe, ixo_icc_fifo0_sbe_in_sclk, ixo_icc_fifo1_sbe_in_sclk, ixo_ics_mem_sbe_in_sclk. */ #else /* Word 0 - Little Endian */ uint64_t ied0_sbe : 28; /**< [ 27: 0](R/W1S/H) Reads or sets IOBN(0..1)_INT_SUM[IED0_SBE]. Internal: gmr_ixofifo_sbe_sclk, icc0_xmc_fif_sbe, icc1_xmc_fif_sbe, icc_xmc_fifo_ecc_sbe, sli_preq_0_sbe_sclk, sli_req_0_sbe_sclk, sli_preq_1_sbe_sclk, sli_req_1_sbe_sclk, sli_preq_2_sbe_sclk, sli_req_2_sbe_sclk, ixo_smmu_mem0_sbe_sclk, iop_breq_fifo0_sbe, iop_breq_fifo1_sbe , iop_breq_fifo2_sbe, iop_breq_fifo3_sbe , iop_ffifo_sbe_sclk, rsd_mem0_sbe, rsd_mem1_sbe, ics_cmd_fifo_sbe_sclk, ixo_xmd_mem1_sbe_sclk, ixo_xmd_mem0_sbe_sclk, iobn_iorn_ffifo0__sbe_sclk, iobn_iorn_ffifo1__sbe_sclk, irp1_flid_mem_sbe, irp0_flid_mem_sbe, ixo_icc_fifo0_sbe_in_sclk, ixo_icc_fifo1_sbe_in_sclk, ixo_ics_mem_sbe_in_sclk. */ uint64_t reserved_28_31 : 4; uint64_t ied0_dbe : 28; /**< [ 59: 32](R/W1S/H) Reads or sets IOBN(0..1)_INT_SUM[IED0_DBE]. Internal: gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t reserved_60_63 : 4; #endif /* Word 0 - End */ } cn88xxp1; struct bdk_iobnx_int_sum_w1s_cn9 { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_4_63 : 60; uint64_t ncbo_ncb2_psn : 1; /**< [ 3: 3](R/W1S/H) Reads or sets IOBN(0..1)_INT_SUM[NCBO_NCB2_PSN]. */ uint64_t ncbo_ncb1_psn : 1; /**< [ 2: 2](R/W1S/H) Reads or sets IOBN(0..1)_INT_SUM[NCBO_NCB1_PSN]. */ uint64_t ncbo_ncb0_psn : 1; /**< [ 1: 1](R/W1S/H) Reads or sets IOBN(0..1)_INT_SUM[NCBO_NCB0_PSN]. */ uint64_t ncbo_to : 1; /**< [ 0: 0](R/W1S/H) Reads or sets IOBN(0..1)_INT_SUM[NCBO_TO]. */ #else /* Word 0 - Little Endian */ uint64_t ncbo_to : 1; /**< [ 0: 0](R/W1S/H) Reads or sets IOBN(0..1)_INT_SUM[NCBO_TO]. */ uint64_t ncbo_ncb0_psn : 1; /**< [ 1: 1](R/W1S/H) Reads or sets IOBN(0..1)_INT_SUM[NCBO_NCB0_PSN]. */ uint64_t ncbo_ncb1_psn : 1; /**< [ 2: 2](R/W1S/H) Reads or sets IOBN(0..1)_INT_SUM[NCBO_NCB1_PSN]. */ uint64_t ncbo_ncb2_psn : 1; /**< [ 3: 3](R/W1S/H) Reads or sets IOBN(0..1)_INT_SUM[NCBO_NCB2_PSN]. */ uint64_t reserved_4_63 : 60; #endif /* Word 0 - End */ } cn9; struct bdk_iobnx_int_sum_w1s_cn81xx { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t pem_sie : 1; /**< [ 63: 63](R/W1S/H) Reads or sets IOBN(0)_INT_SUM[PEM_SIE]. */ uint64_t reserved_61_62 : 2; uint64_t ied0_dbe : 29; /**< [ 60: 32](R/W1S/H) Reads or sets IOBN(0)_INT_SUM[IED0_DBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t reserved_29_31 : 3; uint64_t ied0_sbe : 29; /**< [ 28: 0](R/W1S/H) Reads or sets IOBN(0)_INT_SUM[IED0_SBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_sbe_sclk, icc0_xmc_fif_sbe, icc1_xmc_fif_sbe, icc_xmc_fifo_ecc_sbe, sli_preq_0_sbe_sclk, sli_req_0_sbe_sclk, sli_preq_1_sbe_sclk, sli_req_1_sbe_sclk, sli_preq_2_sbe_sclk, sli_req_2_sbe_sclk, ixo_smmu_mem0_sbe_sclk, iop_breq_fifo0_sbe, iop_breq_fifo1_sbe , iop_breq_fifo2_sbe, iop_breq_fifo3_sbe , iop_ffifo_sbe_sclk, rsd_mem0_sbe, rsd_mem1_sbe, ics_cmd_fifo_sbe_sclk, ixo_xmd_mem1_sbe_sclk, ixo_xmd_mem0_sbe_sclk, iobn_iorn_ffifo0__sbe_sclk, iobn_iorn_ffifo1__sbe_sclk, irp1_flid_mem_sbe, irp0_flid_mem_sbe, ixo_icc_fifo0_sbe_in_sclk, ixo_icc_fifo1_sbe_in_sclk, ixo_ics_mem_sbe_in_sclk. */ #else /* Word 0 - Little Endian */ uint64_t ied0_sbe : 29; /**< [ 28: 0](R/W1S/H) Reads or sets IOBN(0)_INT_SUM[IED0_SBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_sbe_sclk, icc0_xmc_fif_sbe, icc1_xmc_fif_sbe, icc_xmc_fifo_ecc_sbe, sli_preq_0_sbe_sclk, sli_req_0_sbe_sclk, sli_preq_1_sbe_sclk, sli_req_1_sbe_sclk, sli_preq_2_sbe_sclk, sli_req_2_sbe_sclk, ixo_smmu_mem0_sbe_sclk, iop_breq_fifo0_sbe, iop_breq_fifo1_sbe , iop_breq_fifo2_sbe, iop_breq_fifo3_sbe , iop_ffifo_sbe_sclk, rsd_mem0_sbe, rsd_mem1_sbe, ics_cmd_fifo_sbe_sclk, ixo_xmd_mem1_sbe_sclk, ixo_xmd_mem0_sbe_sclk, iobn_iorn_ffifo0__sbe_sclk, iobn_iorn_ffifo1__sbe_sclk, irp1_flid_mem_sbe, irp0_flid_mem_sbe, ixo_icc_fifo0_sbe_in_sclk, ixo_icc_fifo1_sbe_in_sclk, ixo_ics_mem_sbe_in_sclk. */ uint64_t reserved_29_31 : 3; uint64_t ied0_dbe : 29; /**< [ 60: 32](R/W1S/H) Reads or sets IOBN(0)_INT_SUM[IED0_DBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t reserved_61_62 : 2; uint64_t pem_sie : 1; /**< [ 63: 63](R/W1S/H) Reads or sets IOBN(0)_INT_SUM[PEM_SIE]. */ #endif /* Word 0 - End */ } cn81xx; struct bdk_iobnx_int_sum_w1s_cn83xx { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t pem_sie : 1; /**< [ 63: 63](R/W1S/H) Reads or sets IOBN(0..1)_INT_SUM[PEM_SIE]. */ uint64_t ied0_dbe : 31; /**< [ 62: 32](R/W1S/H) Reads or sets IOBN(0..1)_INT_SUM[IED0_DBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, sli_preq_3_dbe_sclk, sli_req_3_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t reserved_31 : 1; uint64_t ied0_sbe : 31; /**< [ 30: 0](R/W1S/H) Reads or sets IOBN(0..1)_INT_SUM[IED0_SBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_sbe_sclk, icc0_xmc_fif_sbe, icc1_xmc_fif_sbe, icc_xmc_fifo_ecc_sbe, sli_preq_0_sbe_sclk, sli_req_0_sbe_sclk, sli_preq_1_sbe_sclk, sli_req_1_sbe_sclk, sli_preq_2_sbe_sclk, sli_req_2_sbe_sclk, sli_preq_3_sbe_sclk, sli_req_3_sbe_sclk, ixo_smmu_mem0_sbe_sclk, iop_breq_fifo0_sbe, iop_breq_fifo1_sbe , iop_breq_fifo2_sbe, iop_breq_fifo3_sbe , iop_ffifo_sbe_sclk, rsd_mem0_sbe, rsd_mem1_sbe, ics_cmd_fifo_sbe_sclk, ixo_xmd_mem1_sbe_sclk, ixo_xmd_mem0_sbe_sclk, iobn_iorn_ffifo0__sbe_sclk, iobn_iorn_ffifo1__sbe_sclk, irp1_flid_mem_sbe, irp0_flid_mem_sbe, ixo_icc_fifo0_sbe_in_sclk, ixo_icc_fifo1_sbe_in_sclk, ixo_ics_mem_sbe_in_sclk. */ #else /* Word 0 - Little Endian */ uint64_t ied0_sbe : 31; /**< [ 30: 0](R/W1S/H) Reads or sets IOBN(0..1)_INT_SUM[IED0_SBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_sbe_sclk, icc0_xmc_fif_sbe, icc1_xmc_fif_sbe, icc_xmc_fifo_ecc_sbe, sli_preq_0_sbe_sclk, sli_req_0_sbe_sclk, sli_preq_1_sbe_sclk, sli_req_1_sbe_sclk, sli_preq_2_sbe_sclk, sli_req_2_sbe_sclk, sli_preq_3_sbe_sclk, sli_req_3_sbe_sclk, ixo_smmu_mem0_sbe_sclk, iop_breq_fifo0_sbe, iop_breq_fifo1_sbe , iop_breq_fifo2_sbe, iop_breq_fifo3_sbe , iop_ffifo_sbe_sclk, rsd_mem0_sbe, rsd_mem1_sbe, ics_cmd_fifo_sbe_sclk, ixo_xmd_mem1_sbe_sclk, ixo_xmd_mem0_sbe_sclk, iobn_iorn_ffifo0__sbe_sclk, iobn_iorn_ffifo1__sbe_sclk, irp1_flid_mem_sbe, irp0_flid_mem_sbe, ixo_icc_fifo0_sbe_in_sclk, ixo_icc_fifo1_sbe_in_sclk, ixo_ics_mem_sbe_in_sclk. */ uint64_t reserved_31 : 1; uint64_t ied0_dbe : 31; /**< [ 62: 32](R/W1S/H) Reads or sets IOBN(0..1)_INT_SUM[IED0_DBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, sli_preq_3_dbe_sclk, sli_req_3_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t pem_sie : 1; /**< [ 63: 63](R/W1S/H) Reads or sets IOBN(0..1)_INT_SUM[PEM_SIE]. */ #endif /* Word 0 - End */ } cn83xx; struct bdk_iobnx_int_sum_w1s_cn88xxp2 { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t pem_sie : 1; /**< [ 63: 63](R/W1S/H) Reads or sets IOBN(0..1)_INT_SUM[PEM_SIE]. */ uint64_t reserved_61_62 : 2; uint64_t ied0_dbe : 29; /**< [ 60: 32](R/W1S/H) Reads or sets IOBN(0..1)_INT_SUM[IED0_DBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t reserved_29_31 : 3; uint64_t ied0_sbe : 29; /**< [ 28: 0](R/W1S/H) Reads or sets IOBN(0..1)_INT_SUM[IED0_SBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_sbe_sclk, icc0_xmc_fif_sbe, icc1_xmc_fif_sbe, icc_xmc_fifo_ecc_sbe, sli_preq_0_sbe_sclk, sli_req_0_sbe_sclk, sli_preq_1_sbe_sclk, sli_req_1_sbe_sclk, sli_preq_2_sbe_sclk, sli_req_2_sbe_sclk, ixo_smmu_mem0_sbe_sclk, iop_breq_fifo0_sbe, iop_breq_fifo1_sbe , iop_breq_fifo2_sbe, iop_breq_fifo3_sbe , iop_ffifo_sbe_sclk, rsd_mem0_sbe, rsd_mem1_sbe, ics_cmd_fifo_sbe_sclk, ixo_xmd_mem1_sbe_sclk, ixo_xmd_mem0_sbe_sclk, iobn_iorn_ffifo0__sbe_sclk, iobn_iorn_ffifo1__sbe_sclk, irp1_flid_mem_sbe, irp0_flid_mem_sbe, ixo_icc_fifo0_sbe_in_sclk, ixo_icc_fifo1_sbe_in_sclk, ixo_ics_mem_sbe_in_sclk. */ #else /* Word 0 - Little Endian */ uint64_t ied0_sbe : 29; /**< [ 28: 0](R/W1S/H) Reads or sets IOBN(0..1)_INT_SUM[IED0_SBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_sbe_sclk, icc0_xmc_fif_sbe, icc1_xmc_fif_sbe, icc_xmc_fifo_ecc_sbe, sli_preq_0_sbe_sclk, sli_req_0_sbe_sclk, sli_preq_1_sbe_sclk, sli_req_1_sbe_sclk, sli_preq_2_sbe_sclk, sli_req_2_sbe_sclk, ixo_smmu_mem0_sbe_sclk, iop_breq_fifo0_sbe, iop_breq_fifo1_sbe , iop_breq_fifo2_sbe, iop_breq_fifo3_sbe , iop_ffifo_sbe_sclk, rsd_mem0_sbe, rsd_mem1_sbe, ics_cmd_fifo_sbe_sclk, ixo_xmd_mem1_sbe_sclk, ixo_xmd_mem0_sbe_sclk, iobn_iorn_ffifo0__sbe_sclk, iobn_iorn_ffifo1__sbe_sclk, irp1_flid_mem_sbe, irp0_flid_mem_sbe, ixo_icc_fifo0_sbe_in_sclk, ixo_icc_fifo1_sbe_in_sclk, ixo_ics_mem_sbe_in_sclk. */ uint64_t reserved_29_31 : 3; uint64_t ied0_dbe : 29; /**< [ 60: 32](R/W1S/H) Reads or sets IOBN(0..1)_INT_SUM[IED0_DBE]. Internal: iob_mem_data_xmd_sbe_sclk, gmr_ixofifo_dbe_sclk, icc0_xmc_fif_dbe, icc1_xmc_fif_dbe, icc_xmc_fifo_ecc_dbe, sli_preq_0_dbe_sclk, sli_req_0_dbe_sclk, sli_preq_1_dbe_sclk, sli_req_1_dbe_sclk, sli_preq_2_dbe_sclk, sli_req_2_dbe_sclk, ixo_smmu_mem0_dbe_sclk, iop_breq_fifo0_dbe, iop_breq_fifo1_dbe , iop_breq_fifo2_dbe, iop_breq_fifo3_dbe , iop_ffifo_dbe_sclk, rsd_mem0_dbe, rsd_mem1_dbe, ics_cmd_fifo_dbe_sclk, ixo_xmd_mem1_dbe_sclk, ixo_xmd_mem0_dbe_sclk, iobn_iorn_ffifo0__dbe_sclk, iobn_iorn_ffifo1__dbe_sclk, irp1_flid_mem_dbe, irp0_flid_mem_dbe, ixo_icc_fifo0_dbe_in_sclk, ixo_icc_fifo1_dbe_in_sclk, ixo_ics_mem_dbe_in_sclk. */ uint64_t reserved_61_62 : 2; uint64_t pem_sie : 1; /**< [ 63: 63](R/W1S/H) Reads or sets IOBN(0..1)_INT_SUM[PEM_SIE]. */ #endif /* Word 0 - End */ } cn88xxp2; }; typedef union bdk_iobnx_int_sum_w1s bdk_iobnx_int_sum_w1s_t; static inline uint64_t BDK_IOBNX_INT_SUM_W1S(unsigned long a) __attribute__ ((pure, always_inline)); static inline uint64_t BDK_IOBNX_INT_SUM_W1S(unsigned long a) { if (CAVIUM_IS_MODEL(CAVIUM_CN81XX) && (a==0)) return 0x87e0f0007000ll + 0x1000000ll * ((a) & 0x0); if (CAVIUM_IS_MODEL(CAVIUM_CN83XX) && (a<=1)) return 0x87e0f0007000ll + 0x1000000ll * ((a) & 0x1); if (CAVIUM_IS_MODEL(CAVIUM_CN88XX) && (a<=1)) return 0x87e0f0007000ll + 0x1000000ll * ((a) & 0x1); if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX) && (a<=1)) return 0x87e0f0007000ll + 0x1000000ll * ((a) & 0x1); __bdk_csr_fatal("IOBNX_INT_SUM_W1S", 1, a, 0, 0, 0); } #define typedef_BDK_IOBNX_INT_SUM_W1S(a) bdk_iobnx_int_sum_w1s_t #define bustype_BDK_IOBNX_INT_SUM_W1S(a) BDK_CSR_TYPE_RSL #define basename_BDK_IOBNX_INT_SUM_W1S(a) "IOBNX_INT_SUM_W1S" #define device_bar_BDK_IOBNX_INT_SUM_W1S(a) 0x0 /* PF_BAR0 */ #define busnum_BDK_IOBNX_INT_SUM_W1S(a) (a) #define arguments_BDK_IOBNX_INT_SUM_W1S(a) (a),-1,-1,-1 /** * Register (RSL) iobn#_mctlr_reg * * IOBN Memory SControl Register * Contains the sclk memory control for memories. */ union bdk_iobnx_mctlr_reg { uint64_t u; struct bdk_iobnx_mctlr_reg_s { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_49_63 : 15; uint64_t dis : 17; /**< [ 48: 32](R/W) Memory ECC disable. Internal: \<47:32\> = iobn_gmr_ixofifo_csr_cor_dis, sli_req_2_cor_dis and sli_preq_2_cor_dis, sli_req_1_cor_dis and sli_preq_1_cor_dis, sli_req_0_cor_dis and sli_preq_0_cor_dis, iob__iob_xmd_csr_cor_dis_rclk, ixo_smmu_mem0_csr_cor_dis, ixo_smmu_mem1_csr_cor_dis, ixo_ics_mem_csr_cor_dis, ixo_icc_fifo0_csr_cor_dis, ixo_icc_fifo1_csr_cor_dis, ixo_xmd_mem0_csr_cor_dis, ixo_xmd_mem1_csr_cor_dis, iobn_iorn_ffifo0__csr_cor_dis, iobn_iorn_ffifo1__csr_cor_dis, iop_ffifo_csr_cor_dis, ics_cmd_fifo_csr_cor_dis */ uint64_t reserved_30_31 : 2; uint64_t flip : 30; /**< [ 29: 0](R/W) Memory ECC flip. Internal: \<27:0\> = iobn_gmr_ixofifo_csr_flip_synd, sli_req_2_flip_synd and sli_preq_2_flip_synd, sli_req_1_flip_synd and sli_preq_1_flip_synd, sli_req_0_flip_synd and sli_preq_0_flip_synd, iobn_rsd_mem0_csr_flip_synd_rclk, iobn_rsd_mem1_csr_flip_synd_rclk, ixo_smmu_mem0_csr_flip_synd, ixo_smmu_mem1_csr_flip_synd, ixo_ics_mem_csr_flip_synd, iop_ffifo_csr_flip_synd, iop_breq_fifo0_csr_flip_synd, iop_breq_fifo1_csr_flip_synd, iop_breq_fifo2_csr_flip_synd, iop_breq_fifo3_csr_flip_synd */ #else /* Word 0 - Little Endian */ uint64_t flip : 30; /**< [ 29: 0](R/W) Memory ECC flip. Internal: \<27:0\> = iobn_gmr_ixofifo_csr_flip_synd, sli_req_2_flip_synd and sli_preq_2_flip_synd, sli_req_1_flip_synd and sli_preq_1_flip_synd, sli_req_0_flip_synd and sli_preq_0_flip_synd, iobn_rsd_mem0_csr_flip_synd_rclk, iobn_rsd_mem1_csr_flip_synd_rclk, ixo_smmu_mem0_csr_flip_synd, ixo_smmu_mem1_csr_flip_synd, ixo_ics_mem_csr_flip_synd, iop_ffifo_csr_flip_synd, iop_breq_fifo0_csr_flip_synd, iop_breq_fifo1_csr_flip_synd, iop_breq_fifo2_csr_flip_synd, iop_breq_fifo3_csr_flip_synd */ uint64_t reserved_30_31 : 2; uint64_t dis : 17; /**< [ 48: 32](R/W) Memory ECC disable. Internal: \<47:32\> = iobn_gmr_ixofifo_csr_cor_dis, sli_req_2_cor_dis and sli_preq_2_cor_dis, sli_req_1_cor_dis and sli_preq_1_cor_dis, sli_req_0_cor_dis and sli_preq_0_cor_dis, iob__iob_xmd_csr_cor_dis_rclk, ixo_smmu_mem0_csr_cor_dis, ixo_smmu_mem1_csr_cor_dis, ixo_ics_mem_csr_cor_dis, ixo_icc_fifo0_csr_cor_dis, ixo_icc_fifo1_csr_cor_dis, ixo_xmd_mem0_csr_cor_dis, ixo_xmd_mem1_csr_cor_dis, iobn_iorn_ffifo0__csr_cor_dis, iobn_iorn_ffifo1__csr_cor_dis, iop_ffifo_csr_cor_dis, ics_cmd_fifo_csr_cor_dis */ uint64_t reserved_49_63 : 15; #endif /* Word 0 - End */ } s; struct bdk_iobnx_mctlr_reg_cn81xx { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_48_63 : 16; uint64_t dis : 16; /**< [ 47: 32](R/W) Memory ECC disable. Internal: \<47:32\> = iobn_gmr_ixofifo_csr_cor_dis, sli_req_2_cor_dis and sli_preq_2_cor_dis, sli_req_1_cor_dis and sli_preq_1_cor_dis, sli_req_0_cor_dis and sli_preq_0_cor_dis, iob__iob_xmd_csr_cor_dis_rclk, ixo_smmu_mem0_csr_cor_dis, ixo_smmu_mem1_csr_cor_dis, ixo_ics_mem_csr_cor_dis, ixo_icc_fifo0_csr_cor_dis, ixo_icc_fifo1_csr_cor_dis, ixo_xmd_mem0_csr_cor_dis, ixo_xmd_mem1_csr_cor_dis, iobn_iorn_ffifo0__csr_cor_dis, iobn_iorn_ffifo1__csr_cor_dis, iop_ffifo_csr_cor_dis, ics_cmd_fifo_csr_cor_dis */ uint64_t reserved_28_31 : 4; uint64_t flip : 28; /**< [ 27: 0](R/W) Memory ECC flip. Internal: \<27:0\> = iobn_gmr_ixofifo_csr_flip_synd, sli_req_2_flip_synd and sli_preq_2_flip_synd, sli_req_1_flip_synd and sli_preq_1_flip_synd, sli_req_0_flip_synd and sli_preq_0_flip_synd, iobn_rsd_mem0_csr_flip_synd_rclk, iobn_rsd_mem1_csr_flip_synd_rclk, ixo_smmu_mem0_csr_flip_synd, ixo_smmu_mem1_csr_flip_synd, ixo_ics_mem_csr_flip_synd, iop_ffifo_csr_flip_synd, iop_breq_fifo0_csr_flip_synd, iop_breq_fifo1_csr_flip_synd, iop_breq_fifo2_csr_flip_synd, iop_breq_fifo3_csr_flip_synd */ #else /* Word 0 - Little Endian */ uint64_t flip : 28; /**< [ 27: 0](R/W) Memory ECC flip. Internal: \<27:0\> = iobn_gmr_ixofifo_csr_flip_synd, sli_req_2_flip_synd and sli_preq_2_flip_synd, sli_req_1_flip_synd and sli_preq_1_flip_synd, sli_req_0_flip_synd and sli_preq_0_flip_synd, iobn_rsd_mem0_csr_flip_synd_rclk, iobn_rsd_mem1_csr_flip_synd_rclk, ixo_smmu_mem0_csr_flip_synd, ixo_smmu_mem1_csr_flip_synd, ixo_ics_mem_csr_flip_synd, iop_ffifo_csr_flip_synd, iop_breq_fifo0_csr_flip_synd, iop_breq_fifo1_csr_flip_synd, iop_breq_fifo2_csr_flip_synd, iop_breq_fifo3_csr_flip_synd */ uint64_t reserved_28_31 : 4; uint64_t dis : 16; /**< [ 47: 32](R/W) Memory ECC disable. Internal: \<47:32\> = iobn_gmr_ixofifo_csr_cor_dis, sli_req_2_cor_dis and sli_preq_2_cor_dis, sli_req_1_cor_dis and sli_preq_1_cor_dis, sli_req_0_cor_dis and sli_preq_0_cor_dis, iob__iob_xmd_csr_cor_dis_rclk, ixo_smmu_mem0_csr_cor_dis, ixo_smmu_mem1_csr_cor_dis, ixo_ics_mem_csr_cor_dis, ixo_icc_fifo0_csr_cor_dis, ixo_icc_fifo1_csr_cor_dis, ixo_xmd_mem0_csr_cor_dis, ixo_xmd_mem1_csr_cor_dis, iobn_iorn_ffifo0__csr_cor_dis, iobn_iorn_ffifo1__csr_cor_dis, iop_ffifo_csr_cor_dis, ics_cmd_fifo_csr_cor_dis */ uint64_t reserved_48_63 : 16; #endif /* Word 0 - End */ } cn81xx; /* struct bdk_iobnx_mctlr_reg_cn81xx cn88xx; */ struct bdk_iobnx_mctlr_reg_cn83xx { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_49_63 : 15; uint64_t dis : 17; /**< [ 48: 32](R/W) Memory ECC disable. Internal: \<48:32\> = iobn_gmr_ixofifo_csr_cor_dis, sli_req_3_cor_dis and sli_preq_3_cor_dis, sli_req_2_cor_dis and sli_preq_2_cor_dis, sli_req_1_cor_dis and sli_preq_1_cor_dis, sli_req_0_cor_dis and sli_preq_0_cor_dis, iob__iob_xmd_csr_cor_dis_rclk, ixo_smmu_mem0_csr_cor_dis, ixo_smmu_mem1_csr_cor_dis, ixo_ics_mem_csr_cor_dis, ixo_icc_fifo0_csr_cor_dis, ixo_icc_fifo1_csr_cor_dis, ixo_xmd_mem0_csr_cor_dis, ixo_xmd_mem1_csr_cor_dis, iobn_iorn_ffifo0__csr_cor_dis, iobn_iorn_ffifo1__csr_cor_dis, iop_ffifo_csr_cor_dis, ics_cmd_fifo_csr_cor_dis */ uint64_t reserved_30_31 : 2; uint64_t flip : 30; /**< [ 29: 0](R/W) Memory ECC flip. Internal: \<29:0\> = iobn_gmr_ixofifo_csr_flip_synd, sli_req_3_flip_synd and sli_preq_3_flip_synd, sli_req_2_flip_synd and sli_preq_2_flip_synd, sli_req_1_flip_synd and sli_preq_1_flip_synd, sli_req_0_flip_synd and sli_preq_0_flip_synd, iobn_rsd_mem0_csr_flip_synd_rclk, iobn_rsd_mem1_csr_flip_synd_rclk, ixo_smmu_mem0_csr_flip_synd, ixo_smmu_mem1_csr_flip_synd, ixo_ics_mem_csr_flip_synd, iop_ffifo_csr_flip_synd, iop_breq_fifo0_csr_flip_synd, iop_breq_fifo1_csr_flip_synd, iop_breq_fifo2_csr_flip_synd, iop_breq_fifo3_csr_flip_synd */ #else /* Word 0 - Little Endian */ uint64_t flip : 30; /**< [ 29: 0](R/W) Memory ECC flip. Internal: \<29:0\> = iobn_gmr_ixofifo_csr_flip_synd, sli_req_3_flip_synd and sli_preq_3_flip_synd, sli_req_2_flip_synd and sli_preq_2_flip_synd, sli_req_1_flip_synd and sli_preq_1_flip_synd, sli_req_0_flip_synd and sli_preq_0_flip_synd, iobn_rsd_mem0_csr_flip_synd_rclk, iobn_rsd_mem1_csr_flip_synd_rclk, ixo_smmu_mem0_csr_flip_synd, ixo_smmu_mem1_csr_flip_synd, ixo_ics_mem_csr_flip_synd, iop_ffifo_csr_flip_synd, iop_breq_fifo0_csr_flip_synd, iop_breq_fifo1_csr_flip_synd, iop_breq_fifo2_csr_flip_synd, iop_breq_fifo3_csr_flip_synd */ uint64_t reserved_30_31 : 2; uint64_t dis : 17; /**< [ 48: 32](R/W) Memory ECC disable. Internal: \<48:32\> = iobn_gmr_ixofifo_csr_cor_dis, sli_req_3_cor_dis and sli_preq_3_cor_dis, sli_req_2_cor_dis and sli_preq_2_cor_dis, sli_req_1_cor_dis and sli_preq_1_cor_dis, sli_req_0_cor_dis and sli_preq_0_cor_dis, iob__iob_xmd_csr_cor_dis_rclk, ixo_smmu_mem0_csr_cor_dis, ixo_smmu_mem1_csr_cor_dis, ixo_ics_mem_csr_cor_dis, ixo_icc_fifo0_csr_cor_dis, ixo_icc_fifo1_csr_cor_dis, ixo_xmd_mem0_csr_cor_dis, ixo_xmd_mem1_csr_cor_dis, iobn_iorn_ffifo0__csr_cor_dis, iobn_iorn_ffifo1__csr_cor_dis, iop_ffifo_csr_cor_dis, ics_cmd_fifo_csr_cor_dis */ uint64_t reserved_49_63 : 15; #endif /* Word 0 - End */ } cn83xx; }; typedef union bdk_iobnx_mctlr_reg bdk_iobnx_mctlr_reg_t; static inline uint64_t BDK_IOBNX_MCTLR_REG(unsigned long a) __attribute__ ((pure, always_inline)); static inline uint64_t BDK_IOBNX_MCTLR_REG(unsigned long a) { if (CAVIUM_IS_MODEL(CAVIUM_CN81XX) && (a==0)) return 0x87e0f0005108ll + 0x1000000ll * ((a) & 0x0); if (CAVIUM_IS_MODEL(CAVIUM_CN83XX) && (a<=1)) return 0x87e0f0005108ll + 0x1000000ll * ((a) & 0x1); if (CAVIUM_IS_MODEL(CAVIUM_CN88XX) && (a<=1)) return 0x87e0f0005108ll + 0x1000000ll * ((a) & 0x1); __bdk_csr_fatal("IOBNX_MCTLR_REG", 1, a, 0, 0, 0); } #define typedef_BDK_IOBNX_MCTLR_REG(a) bdk_iobnx_mctlr_reg_t #define bustype_BDK_IOBNX_MCTLR_REG(a) BDK_CSR_TYPE_RSL #define basename_BDK_IOBNX_MCTLR_REG(a) "IOBNX_MCTLR_REG" #define device_bar_BDK_IOBNX_MCTLR_REG(a) 0x0 /* PF_BAR0 */ #define busnum_BDK_IOBNX_MCTLR_REG(a) (a) #define arguments_BDK_IOBNX_MCTLR_REG(a) (a),-1,-1,-1 /** * Register (RSL) iobn#_mctls_reg * * IOBN Memory SControl Register * Contains the sclk memory control for memories. */ union bdk_iobnx_mctls_reg { uint64_t u; struct bdk_iobnx_mctls_reg_s { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_43_63 : 21; uint64_t dis : 11; /**< [ 42: 32](R/W) Memory ECC disable. Internal: \<42:32\> = iobn_rsd_mem0_csr_cor_dis, iobn_rsd_mem1_csr_cor_dis, irp0_flid_mem_csr_cor_dis, irp1_flid_mem_csr_cor_dis, iop_breq_fifo0_csr_cor_dis, iop_breq_fifo1_csr_cor_dis, iop_breq_fifo2_csr_cor_dis, iop_breq_fifo3_csr_cor_dis, icc_xmc_fifo_ecc_csr_cor_dis, icc0_xmc_fifo_csr_cor_dis, icc1_xmc_fifo_csr_cor_dis */ uint64_t reserved_26_31 : 6; uint64_t flip : 26; /**< [ 25: 0](R/W) Memory ECC flip. Internal: \<25:0\> = iob__iob_xmd_csr_flip_synd_sclk, ixo_icc_fifo0_csr_flip_synd, ixo_icc_fifo1_csr_flip_synd, ixo_xmd_mem0_csr_flip_synd, ixo_xmd_mem1_csr_flip_synd, irp0_flid_mem_csr_flip_synd, irp1_flid_mem_csr_flip_synd, iobn_iorn_ffifo0__csr_flip_synd, iobn_iorn_ffifo1__csr_flip_synd, icc_xmc_fifo_ecc_csr_flip_synd, ics_cmd_fifo_csr_flip_synd, icc0_xmc_fifo_csr_flip_synd, icc1_xmc_fifo_csr_flip_synd */ #else /* Word 0 - Little Endian */ uint64_t flip : 26; /**< [ 25: 0](R/W) Memory ECC flip. Internal: \<25:0\> = iob__iob_xmd_csr_flip_synd_sclk, ixo_icc_fifo0_csr_flip_synd, ixo_icc_fifo1_csr_flip_synd, ixo_xmd_mem0_csr_flip_synd, ixo_xmd_mem1_csr_flip_synd, irp0_flid_mem_csr_flip_synd, irp1_flid_mem_csr_flip_synd, iobn_iorn_ffifo0__csr_flip_synd, iobn_iorn_ffifo1__csr_flip_synd, icc_xmc_fifo_ecc_csr_flip_synd, ics_cmd_fifo_csr_flip_synd, icc0_xmc_fifo_csr_flip_synd, icc1_xmc_fifo_csr_flip_synd */ uint64_t reserved_26_31 : 6; uint64_t dis : 11; /**< [ 42: 32](R/W) Memory ECC disable. Internal: \<42:32\> = iobn_rsd_mem0_csr_cor_dis, iobn_rsd_mem1_csr_cor_dis, irp0_flid_mem_csr_cor_dis, irp1_flid_mem_csr_cor_dis, iop_breq_fifo0_csr_cor_dis, iop_breq_fifo1_csr_cor_dis, iop_breq_fifo2_csr_cor_dis, iop_breq_fifo3_csr_cor_dis, icc_xmc_fifo_ecc_csr_cor_dis, icc0_xmc_fifo_csr_cor_dis, icc1_xmc_fifo_csr_cor_dis */ uint64_t reserved_43_63 : 21; #endif /* Word 0 - End */ } s; /* struct bdk_iobnx_mctls_reg_s cn; */ }; typedef union bdk_iobnx_mctls_reg bdk_iobnx_mctls_reg_t; static inline uint64_t BDK_IOBNX_MCTLS_REG(unsigned long a) __attribute__ ((pure, always_inline)); static inline uint64_t BDK_IOBNX_MCTLS_REG(unsigned long a) { if (CAVIUM_IS_MODEL(CAVIUM_CN81XX) && (a==0)) return 0x87e0f0005100ll + 0x1000000ll * ((a) & 0x0); if (CAVIUM_IS_MODEL(CAVIUM_CN83XX) && (a<=1)) return 0x87e0f0005100ll + 0x1000000ll * ((a) & 0x1); if (CAVIUM_IS_MODEL(CAVIUM_CN88XX) && (a<=1)) return 0x87e0f0005100ll + 0x1000000ll * ((a) & 0x1); __bdk_csr_fatal("IOBNX_MCTLS_REG", 1, a, 0, 0, 0); } #define typedef_BDK_IOBNX_MCTLS_REG(a) bdk_iobnx_mctls_reg_t #define bustype_BDK_IOBNX_MCTLS_REG(a) BDK_CSR_TYPE_RSL #define basename_BDK_IOBNX_MCTLS_REG(a) "IOBNX_MCTLS_REG" #define device_bar_BDK_IOBNX_MCTLS_REG(a) 0x0 /* PF_BAR0 */ #define busnum_BDK_IOBNX_MCTLS_REG(a) (a) #define arguments_BDK_IOBNX_MCTLS_REG(a) (a),-1,-1,-1 /** * Register (RSL) iobn#_msix_pba# * * IOBN MSI-X Pending Bit Array Registers * This register is the MSI-X PBA table; the bit number is indexed by the IOBN_INT_VEC_E enumeration. */ union bdk_iobnx_msix_pbax { uint64_t u; struct bdk_iobnx_msix_pbax_s { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t pend : 64; /**< [ 63: 0](RO) Pending message for the associated IOBN()_MSIX_VEC()_CTL, enumerated by IOBN_INT_VEC_E. Bits that have no associated IOBN_INT_VEC_E are zero. */ #else /* Word 0 - Little Endian */ uint64_t pend : 64; /**< [ 63: 0](RO) Pending message for the associated IOBN()_MSIX_VEC()_CTL, enumerated by IOBN_INT_VEC_E. Bits that have no associated IOBN_INT_VEC_E are zero. */ #endif /* Word 0 - End */ } s; /* struct bdk_iobnx_msix_pbax_s cn; */ }; typedef union bdk_iobnx_msix_pbax bdk_iobnx_msix_pbax_t; static inline uint64_t BDK_IOBNX_MSIX_PBAX(unsigned long a, unsigned long b) __attribute__ ((pure, always_inline)); static inline uint64_t BDK_IOBNX_MSIX_PBAX(unsigned long a, unsigned long b) { if (CAVIUM_IS_MODEL(CAVIUM_CN81XX) && ((a==0) && (b==0))) return 0x87e0f0ff0000ll + 0x1000000ll * ((a) & 0x0) + 8ll * ((b) & 0x0); if (CAVIUM_IS_MODEL(CAVIUM_CN83XX) && ((a<=1) && (b==0))) return 0x87e0f0ff0000ll + 0x1000000ll * ((a) & 0x1) + 8ll * ((b) & 0x0); if (CAVIUM_IS_MODEL(CAVIUM_CN88XX) && ((a<=1) && (b==0))) return 0x87e0f0ff0000ll + 0x1000000ll * ((a) & 0x1) + 8ll * ((b) & 0x0); if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX) && ((a<=1) && (b==0))) return 0x87e0f0ff0000ll + 0x1000000ll * ((a) & 0x1) + 8ll * ((b) & 0x0); __bdk_csr_fatal("IOBNX_MSIX_PBAX", 2, a, b, 0, 0); } #define typedef_BDK_IOBNX_MSIX_PBAX(a,b) bdk_iobnx_msix_pbax_t #define bustype_BDK_IOBNX_MSIX_PBAX(a,b) BDK_CSR_TYPE_RSL #define basename_BDK_IOBNX_MSIX_PBAX(a,b) "IOBNX_MSIX_PBAX" #define device_bar_BDK_IOBNX_MSIX_PBAX(a,b) 0x4 /* PF_BAR4 */ #define busnum_BDK_IOBNX_MSIX_PBAX(a,b) (a) #define arguments_BDK_IOBNX_MSIX_PBAX(a,b) (a),(b),-1,-1 /** * Register (RSL) iobn#_msix_vec#_addr * * IOBN MSI-X Vector-Table Address Register * This register is the MSI-X vector table, indexed by the IOBN_INT_VEC_E enumeration. */ union bdk_iobnx_msix_vecx_addr { uint64_t u; struct bdk_iobnx_msix_vecx_addr_s { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_53_63 : 11; uint64_t addr : 51; /**< [ 52: 2](R/W) IOVA to use for MSI-X delivery of this vector. */ uint64_t reserved_1 : 1; uint64_t secvec : 1; /**< [ 0: 0](SR/W) Secure vector. 0 = This vector may be read or written by either secure or nonsecure states. 1 = This vector's IOBN_MSIX_VEC()_ADDR, IOBN_MSIX_VEC()_CTL, and corresponding bit of IOBN_MSIX_PBA() are RAZ/WI and does not cause a fault when accessed by the nonsecure world. If PCCPF_IOBN_VSEC_SCTL[MSIX_SEC] (for documentation, see PCCPF_XXX_VSEC_SCTL[MSIX_SEC]) is set, all vectors are secure and function as if [SECVEC] was set. */ #else /* Word 0 - Little Endian */ uint64_t secvec : 1; /**< [ 0: 0](SR/W) Secure vector. 0 = This vector may be read or written by either secure or nonsecure states. 1 = This vector's IOBN_MSIX_VEC()_ADDR, IOBN_MSIX_VEC()_CTL, and corresponding bit of IOBN_MSIX_PBA() are RAZ/WI and does not cause a fault when accessed by the nonsecure world. If PCCPF_IOBN_VSEC_SCTL[MSIX_SEC] (for documentation, see PCCPF_XXX_VSEC_SCTL[MSIX_SEC]) is set, all vectors are secure and function as if [SECVEC] was set. */ uint64_t reserved_1 : 1; uint64_t addr : 51; /**< [ 52: 2](R/W) IOVA to use for MSI-X delivery of this vector. */ uint64_t reserved_53_63 : 11; #endif /* Word 0 - End */ } s; struct bdk_iobnx_msix_vecx_addr_cn8 { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_49_63 : 15; uint64_t addr : 47; /**< [ 48: 2](R/W) IOVA to use for MSI-X delivery of this vector. */ uint64_t reserved_1 : 1; uint64_t secvec : 1; /**< [ 0: 0](SR/W) Secure vector. 0 = This vector may be read or written by either secure or nonsecure states. 1 = This vector's IOBN_MSIX_VEC()_ADDR, IOBN_MSIX_VEC()_CTL, and corresponding bit of IOBN_MSIX_PBA() are RAZ/WI and does not cause a fault when accessed by the nonsecure world. If PCCPF_IOBN_VSEC_SCTL[MSIX_SEC] (for documentation, see PCCPF_XXX_VSEC_SCTL[MSIX_SEC]) is set, all vectors are secure and function as if [SECVEC] was set. */ #else /* Word 0 - Little Endian */ uint64_t secvec : 1; /**< [ 0: 0](SR/W) Secure vector. 0 = This vector may be read or written by either secure or nonsecure states. 1 = This vector's IOBN_MSIX_VEC()_ADDR, IOBN_MSIX_VEC()_CTL, and corresponding bit of IOBN_MSIX_PBA() are RAZ/WI and does not cause a fault when accessed by the nonsecure world. If PCCPF_IOBN_VSEC_SCTL[MSIX_SEC] (for documentation, see PCCPF_XXX_VSEC_SCTL[MSIX_SEC]) is set, all vectors are secure and function as if [SECVEC] was set. */ uint64_t reserved_1 : 1; uint64_t addr : 47; /**< [ 48: 2](R/W) IOVA to use for MSI-X delivery of this vector. */ uint64_t reserved_49_63 : 15; #endif /* Word 0 - End */ } cn8; struct bdk_iobnx_msix_vecx_addr_cn9 { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_53_63 : 11; uint64_t addr : 51; /**< [ 52: 2](R/W) IOVA to use for MSI-X delivery of this vector. */ uint64_t reserved_1 : 1; uint64_t secvec : 1; /**< [ 0: 0](SR/W) Secure vector. 0 = This vector may be read or written by either secure or nonsecure states. 1 = This vector's IOBN()_MSIX_VEC()_ADDR, IOBN()_MSIX_VEC()_CTL, and corresponding bit of IOBN()_MSIX_PBA() are RAZ/WI and does not cause a fault when accessed by the nonsecure world. If PCCPF_IOBN_VSEC_SCTL[MSIX_SEC] (for documentation, see PCCPF_XXX_VSEC_SCTL[MSIX_SEC]) is set, all vectors are secure and function as if [SECVEC] was set. */ #else /* Word 0 - Little Endian */ uint64_t secvec : 1; /**< [ 0: 0](SR/W) Secure vector. 0 = This vector may be read or written by either secure or nonsecure states. 1 = This vector's IOBN()_MSIX_VEC()_ADDR, IOBN()_MSIX_VEC()_CTL, and corresponding bit of IOBN()_MSIX_PBA() are RAZ/WI and does not cause a fault when accessed by the nonsecure world. If PCCPF_IOBN_VSEC_SCTL[MSIX_SEC] (for documentation, see PCCPF_XXX_VSEC_SCTL[MSIX_SEC]) is set, all vectors are secure and function as if [SECVEC] was set. */ uint64_t reserved_1 : 1; uint64_t addr : 51; /**< [ 52: 2](R/W) IOVA to use for MSI-X delivery of this vector. */ uint64_t reserved_53_63 : 11; #endif /* Word 0 - End */ } cn9; }; typedef union bdk_iobnx_msix_vecx_addr bdk_iobnx_msix_vecx_addr_t; static inline uint64_t BDK_IOBNX_MSIX_VECX_ADDR(unsigned long a, unsigned long b) __attribute__ ((pure, always_inline)); static inline uint64_t BDK_IOBNX_MSIX_VECX_ADDR(unsigned long a, unsigned long b) { if (CAVIUM_IS_MODEL(CAVIUM_CN81XX) && ((a==0) && (b==0))) return 0x87e0f0f00000ll + 0x1000000ll * ((a) & 0x0) + 0x10ll * ((b) & 0x0); if (CAVIUM_IS_MODEL(CAVIUM_CN83XX) && ((a<=1) && (b==0))) return 0x87e0f0f00000ll + 0x1000000ll * ((a) & 0x1) + 0x10ll * ((b) & 0x0); if (CAVIUM_IS_MODEL(CAVIUM_CN88XX) && ((a<=1) && (b==0))) return 0x87e0f0f00000ll + 0x1000000ll * ((a) & 0x1) + 0x10ll * ((b) & 0x0); if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX) && ((a<=1) && (b<=1))) return 0x87e0f0f00000ll + 0x1000000ll * ((a) & 0x1) + 0x10ll * ((b) & 0x1); __bdk_csr_fatal("IOBNX_MSIX_VECX_ADDR", 2, a, b, 0, 0); } #define typedef_BDK_IOBNX_MSIX_VECX_ADDR(a,b) bdk_iobnx_msix_vecx_addr_t #define bustype_BDK_IOBNX_MSIX_VECX_ADDR(a,b) BDK_CSR_TYPE_RSL #define basename_BDK_IOBNX_MSIX_VECX_ADDR(a,b) "IOBNX_MSIX_VECX_ADDR" #define device_bar_BDK_IOBNX_MSIX_VECX_ADDR(a,b) 0x4 /* PF_BAR4 */ #define busnum_BDK_IOBNX_MSIX_VECX_ADDR(a,b) (a) #define arguments_BDK_IOBNX_MSIX_VECX_ADDR(a,b) (a),(b),-1,-1 /** * Register (RSL) iobn#_msix_vec#_ctl * * IOBN MSI-X Vector-Table Control and Data Register * This register is the MSI-X vector table, indexed by the IOBN_INT_VEC_E enumeration. */ union bdk_iobnx_msix_vecx_ctl { uint64_t u; struct bdk_iobnx_msix_vecx_ctl_s { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_33_63 : 31; uint64_t mask : 1; /**< [ 32: 32](R/W) When set, no MSI-X interrupts are sent to this vector. */ uint64_t data : 32; /**< [ 31: 0](R/W) Data to use for MSI-X delivery of this vector. */ #else /* Word 0 - Little Endian */ uint64_t data : 32; /**< [ 31: 0](R/W) Data to use for MSI-X delivery of this vector. */ uint64_t mask : 1; /**< [ 32: 32](R/W) When set, no MSI-X interrupts are sent to this vector. */ uint64_t reserved_33_63 : 31; #endif /* Word 0 - End */ } s; struct bdk_iobnx_msix_vecx_ctl_cn8 { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_33_63 : 31; uint64_t mask : 1; /**< [ 32: 32](R/W) When set, no MSI-X interrupts are sent to this vector. */ uint64_t reserved_20_31 : 12; uint64_t data : 20; /**< [ 19: 0](R/W) Data to use for MSI-X delivery of this vector. */ #else /* Word 0 - Little Endian */ uint64_t data : 20; /**< [ 19: 0](R/W) Data to use for MSI-X delivery of this vector. */ uint64_t reserved_20_31 : 12; uint64_t mask : 1; /**< [ 32: 32](R/W) When set, no MSI-X interrupts are sent to this vector. */ uint64_t reserved_33_63 : 31; #endif /* Word 0 - End */ } cn8; /* struct bdk_iobnx_msix_vecx_ctl_s cn9; */ }; typedef union bdk_iobnx_msix_vecx_ctl bdk_iobnx_msix_vecx_ctl_t; static inline uint64_t BDK_IOBNX_MSIX_VECX_CTL(unsigned long a, unsigned long b) __attribute__ ((pure, always_inline)); static inline uint64_t BDK_IOBNX_MSIX_VECX_CTL(unsigned long a, unsigned long b) { if (CAVIUM_IS_MODEL(CAVIUM_CN81XX) && ((a==0) && (b==0))) return 0x87e0f0f00008ll + 0x1000000ll * ((a) & 0x0) + 0x10ll * ((b) & 0x0); if (CAVIUM_IS_MODEL(CAVIUM_CN83XX) && ((a<=1) && (b==0))) return 0x87e0f0f00008ll + 0x1000000ll * ((a) & 0x1) + 0x10ll * ((b) & 0x0); if (CAVIUM_IS_MODEL(CAVIUM_CN88XX) && ((a<=1) && (b==0))) return 0x87e0f0f00008ll + 0x1000000ll * ((a) & 0x1) + 0x10ll * ((b) & 0x0); if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX) && ((a<=1) && (b<=1))) return 0x87e0f0f00008ll + 0x1000000ll * ((a) & 0x1) + 0x10ll * ((b) & 0x1); __bdk_csr_fatal("IOBNX_MSIX_VECX_CTL", 2, a, b, 0, 0); } #define typedef_BDK_IOBNX_MSIX_VECX_CTL(a,b) bdk_iobnx_msix_vecx_ctl_t #define bustype_BDK_IOBNX_MSIX_VECX_CTL(a,b) BDK_CSR_TYPE_RSL #define basename_BDK_IOBNX_MSIX_VECX_CTL(a,b) "IOBNX_MSIX_VECX_CTL" #define device_bar_BDK_IOBNX_MSIX_VECX_CTL(a,b) 0x4 /* PF_BAR4 */ #define busnum_BDK_IOBNX_MSIX_VECX_CTL(a,b) (a) #define arguments_BDK_IOBNX_MSIX_VECX_CTL(a,b) (a),(b),-1,-1 /** * Register (RSL) iobn#_ncb#_acc * * IOBN NCB Access Registers * This register sets attributes of NCBDIDs address bits \<43:36\>. */ union bdk_iobnx_ncbx_acc { uint64_t u; struct bdk_iobnx_ncbx_acc_s { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t reserved_1_63 : 63; uint64_t all_cmds : 1; /**< [ 0: 0](R/W) Device supports all commends. 0 = Only naturally aligned loads and stores that are 64-bit or smaller are permitted to the NCB device. This setting is used for non-PEM devices. 1 = Allow all size accesses, plus atomics and LMTSTs. This setting is used for PEM. Reset value of this field varies for different devices. Using non-reset values is for diagnostic use only. Internal: FIXME resets to be added. */ #else /* Word 0 - Little Endian */ uint64_t all_cmds : 1; /**< [ 0: 0](R/W) Device supports all commends. 0 = Only naturally aligned loads and stores that are 64-bit or smaller are permitted to the NCB device. This setting is used for non-PEM devices. 1 = Allow all size accesses, plus atomics and LMTSTs. This setting is used for PEM. Reset value of this field varies for different devices. Using non-reset values is for diagnostic use only. Internal: FIXME resets to be added. */ uint64_t reserved_1_63 : 63; #endif /* Word 0 - End */ } s; /* struct bdk_iobnx_ncbx_acc_s cn; */ }; typedef union bdk_iobnx_ncbx_acc bdk_iobnx_ncbx_acc_t; static inline uint64_t BDK_IOBNX_NCBX_ACC(unsigned long a, unsigned long b) __attribute__ ((pure, always_inline)); static inline uint64_t BDK_IOBNX_NCBX_ACC(unsigned long a, unsigned long b) { if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX) && ((a<=1) && (b<=255))) return 0x87e0f0080000ll + 0x1000000ll * ((a) & 0x1) + 8ll * ((b) & 0xff); __bdk_csr_fatal("IOBNX_NCBX_ACC", 2, a, b, 0, 0); } #define typedef_BDK_IOBNX_NCBX_ACC(a,b) bdk_iobnx_ncbx_acc_t #define bustype_BDK_IOBNX_NCBX_ACC(a,b) BDK_CSR_TYPE_RSL #define basename_BDK_IOBNX_NCBX_ACC(a,b) "IOBNX_NCBX_ACC" #define device_bar_BDK_IOBNX_NCBX_ACC(a,b) 0x0 /* PF_BAR0 */ #define busnum_BDK_IOBNX_NCBX_ACC(a,b) (a) #define arguments_BDK_IOBNX_NCBX_ACC(a,b) (a),(b),-1,-1 /** * Register (RSL) iobn#_ncb#_arb#_bp_test * * IOBN Back Pressure Register */ union bdk_iobnx_ncbx_arbx_bp_test { uint64_t u; struct bdk_iobnx_ncbx_arbx_bp_test_s { #if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */ uint64_t bp_cfg : 64; /**< [ 63: 0](R/W) Backpressure weight. For diagnostic use only. Internal: There are 2 backpressure configuration bits per enable, with the two bits defined as 0x0=100% of the time, 0x1=75% of the time, 0x2=50% of the time, 0x3=25% of the time. \