aboutsummaryrefslogtreecommitdiff
path: root/src/vendorcode/cavium/include/bdk/libbdk-arch/bdk-csrs-pccpf.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/vendorcode/cavium/include/bdk/libbdk-arch/bdk-csrs-pccpf.h')
-rw-r--r--src/vendorcode/cavium/include/bdk/libbdk-arch/bdk-csrs-pccpf.h4727
1 files changed, 4727 insertions, 0 deletions
diff --git a/src/vendorcode/cavium/include/bdk/libbdk-arch/bdk-csrs-pccpf.h b/src/vendorcode/cavium/include/bdk/libbdk-arch/bdk-csrs-pccpf.h
new file mode 100644
index 0000000000..0b3e20ca4b
--- /dev/null
+++ b/src/vendorcode/cavium/include/bdk/libbdk-arch/bdk-csrs-pccpf.h
@@ -0,0 +1,4727 @@
+#ifndef __BDK_CSRS_PCCPF_H__
+#define __BDK_CSRS_PCCPF_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 PCCPF.
+ *
+ * This file is auto generated. Do not edit.
+ *
+ */
+
+/**
+ * Enumeration pcc_dev_con_e
+ *
+ * PCC Device Connection Enumeration
+ * Enumerates where the device is connected in the topology. Software must rely on discovery and
+ * not use this enumeration as the values will vary by product, and the mnemonics are a super-set
+ * of the devices available. The value of the enumeration is formatted as defined by
+ * PCC_DEV_CON_S.
+ */
+#define BDK_PCC_DEV_CON_E_APX(a) (0x200 + (a))
+#define BDK_PCC_DEV_CON_E_AVS (0xf0)
+#define BDK_PCC_DEV_CON_E_BCH_CN8 (0x300)
+#define BDK_PCC_DEV_CON_E_BCH_CN9 (0x400)
+#define BDK_PCC_DEV_CON_E_BGXX(a) (0x180 + (a))
+#define BDK_PCC_DEV_CON_E_BTS (0x141)
+#define BDK_PCC_DEV_CON_E_CCS (0x109)
+#define BDK_PCC_DEV_CON_E_CCUX(a) (0x120 + (a))
+#define BDK_PCC_DEV_CON_E_CGXX(a) (0x188 + (a))
+#define BDK_PCC_DEV_CON_E_CPC (0xd0)
+#define BDK_PCC_DEV_CON_E_CPT0 (0x400)
+#define BDK_PCC_DEV_CON_E_CPT1 (0x500)
+#define BDK_PCC_DEV_CON_E_DAP (0x102)
+#define BDK_PCC_DEV_CON_E_DDF0 (0x10500)
+#define BDK_PCC_DEV_CON_E_DFA (0x400)
+#define BDK_PCC_DEV_CON_E_DPI0_CN8 (0xb00)
+#define BDK_PCC_DEV_CON_E_DPI0_CN9 (0xc00)
+#define BDK_PCC_DEV_CON_E_FPA_CN8 (0x900)
+#define BDK_PCC_DEV_CON_E_FPA_CN9 (0xa00)
+#define BDK_PCC_DEV_CON_E_FUS (0x103)
+#define BDK_PCC_DEV_CON_E_FUSF (0x104)
+#define BDK_PCC_DEV_CON_E_GIC_CN8 (0x18)
+#define BDK_PCC_DEV_CON_E_GIC_CN9 (0x20)
+#define BDK_PCC_DEV_CON_E_GPIO_CN8 (0x30)
+#define BDK_PCC_DEV_CON_E_GPIO_CN9 (0x78)
+#define BDK_PCC_DEV_CON_E_GSERX(a) (0x1e0 + (a))
+#define BDK_PCC_DEV_CON_E_GSERNX(a) (0x1f0 + (a))
+#define BDK_PCC_DEV_CON_E_GTI_CN8 (0x20)
+#define BDK_PCC_DEV_CON_E_GTI_CN9 (0x28)
+#define BDK_PCC_DEV_CON_E_IOBNX(a) (0x158 + (a))
+#define BDK_PCC_DEV_CON_E_KEY (0x10d)
+#define BDK_PCC_DEV_CON_E_L2C (0x109)
+#define BDK_PCC_DEV_CON_E_L2C_CBCX(a) (0x138 + (a))
+#define BDK_PCC_DEV_CON_E_L2C_MCIX(a) (0x13c + (a))
+#define BDK_PCC_DEV_CON_E_L2C_TADX(a) (0x130 + (a))
+#define BDK_PCC_DEV_CON_E_LBKX(a) (0x168 + (a))
+#define BDK_PCC_DEV_CON_E_LMCX(a) (0x150 + (a))
+#define BDK_PCC_DEV_CON_E_MCCX(a) (0x130 + (a))
+#define BDK_PCC_DEV_CON_E_MDC (0x140)
+#define BDK_PCC_DEV_CON_E_MIO_BOOT (0x10e)
+#define BDK_PCC_DEV_CON_E_MIO_EMM (0x10c)
+#define BDK_PCC_DEV_CON_E_MIO_FUS (0x103)
+#define BDK_PCC_DEV_CON_E_MIO_PTP (0x40)
+#define BDK_PCC_DEV_CON_E_MIO_TWSX(a) (0x148 + (a))
+#define BDK_PCC_DEV_CON_E_MPI (0x38)
+#define BDK_PCC_DEV_CON_E_MPIX(a) (0x30 + 8 * (a))
+#define BDK_PCC_DEV_CON_E_MRML (0x100)
+#define BDK_PCC_DEV_CON_E_NCSI (0x108)
+#define BDK_PCC_DEV_CON_E_NDF (0x58)
+#define BDK_PCC_DEV_CON_E_NIC_CN9 (0x10100)
+#define BDK_PCC_DEV_CON_E_NIC_CN81XX (0x500)
+#define BDK_PCC_DEV_CON_E_NIC_CN88XX (0x20100)
+#define BDK_PCC_DEV_CON_E_NIC_CN83XX (0x10100)
+#define BDK_PCC_DEV_CON_E_NICL (0x10100)
+#define BDK_PCC_DEV_CON_E_NIX0 (0x10600)
+#define BDK_PCC_DEV_CON_E_OCLAX_CN8(a) (0x160 + (a))
+#define BDK_PCC_DEV_CON_E_OCLAX_CN9(a) (0x190 + (a))
+#define BDK_PCC_DEV_CON_E_OCX (0x105)
+#define BDK_PCC_DEV_CON_E_PBUS (0x10f)
+#define BDK_PCC_DEV_CON_E_PCCBR_AP (0x10)
+#define BDK_PCC_DEV_CON_E_PCCBR_BCH (0x50)
+#define BDK_PCC_DEV_CON_E_PCCBR_CPT0 (0x60)
+#define BDK_PCC_DEV_CON_E_PCCBR_CPT1 (0x68)
+#define BDK_PCC_DEV_CON_E_PCCBR_DDF0 (0x100a0)
+#define BDK_PCC_DEV_CON_E_PCCBR_DFA (0xb0)
+#define BDK_PCC_DEV_CON_E_PCCBR_DPI0 (0xa0)
+#define BDK_PCC_DEV_CON_E_PCCBR_FPA (0x90)
+#define BDK_PCC_DEV_CON_E_PCCBR_MRML (8)
+#define BDK_PCC_DEV_CON_E_PCCBR_NIC_CN9 (0x10080)
+#define BDK_PCC_DEV_CON_E_PCCBR_NIC_CN81XX (0x78)
+#define BDK_PCC_DEV_CON_E_PCCBR_NIC_CN88XX (0x20010)
+#define BDK_PCC_DEV_CON_E_PCCBR_NIC_CN83XX (0x10080)
+#define BDK_PCC_DEV_CON_E_PCCBR_NICL (0x10080)
+#define BDK_PCC_DEV_CON_E_PCCBR_PKI (0x10088)
+#define BDK_PCC_DEV_CON_E_PCCBR_PKO (0x10090)
+#define BDK_PCC_DEV_CON_E_PCCBR_RAD_CN9 (0x70)
+#define BDK_PCC_DEV_CON_E_PCCBR_RAD_CN88XX (0xa0)
+#define BDK_PCC_DEV_CON_E_PCCBR_RAD_CN83XX (0x70)
+#define BDK_PCC_DEV_CON_E_PCCBR_RNM (0x48)
+#define BDK_PCC_DEV_CON_E_PCCBR_RVUX(a) (0x20000 + 8 * (a))
+#define BDK_PCC_DEV_CON_E_PCCBR_SSO (0x80)
+#define BDK_PCC_DEV_CON_E_PCCBR_SSOW (0x88)
+#define BDK_PCC_DEV_CON_E_PCCBR_TIM (0x98)
+#define BDK_PCC_DEV_CON_E_PCCBR_ZIP_CN9 (0x10098)
+#define BDK_PCC_DEV_CON_E_PCCBR_ZIP_CN88XX (0xa8)
+#define BDK_PCC_DEV_CON_E_PCCBR_ZIP_CN83XX (0x10098)
+#define BDK_PCC_DEV_CON_E_PCIERC0_CN9 (0x30000)
+#define BDK_PCC_DEV_CON_E_PCIERC0_CN81XX (0xc0)
+#define BDK_PCC_DEV_CON_E_PCIERC0_CN88XX (0x10080)
+#define BDK_PCC_DEV_CON_E_PCIERC0_CN83XX (0xc8)
+#define BDK_PCC_DEV_CON_E_PCIERC1_CN9 (0x40000)
+#define BDK_PCC_DEV_CON_E_PCIERC1_CN81XX (0xc8)
+#define BDK_PCC_DEV_CON_E_PCIERC1_CN88XX (0x10090)
+#define BDK_PCC_DEV_CON_E_PCIERC1_CN83XX (0xd0)
+#define BDK_PCC_DEV_CON_E_PCIERC2_CN9 (0x50000)
+#define BDK_PCC_DEV_CON_E_PCIERC2_CN81XX (0xd0)
+#define BDK_PCC_DEV_CON_E_PCIERC2_CN88XX (0x100a0)
+#define BDK_PCC_DEV_CON_E_PCIERC2_CN83XX (0xd8)
+#define BDK_PCC_DEV_CON_E_PCIERC3_CN9 (0x60000)
+#define BDK_PCC_DEV_CON_E_PCIERC3_CN88XX (0x30080)
+#define BDK_PCC_DEV_CON_E_PCIERC3_CN83XX (0xe0)
+#define BDK_PCC_DEV_CON_E_PCIERC4 (0x30090)
+#define BDK_PCC_DEV_CON_E_PCIERC5 (0x300a0)
+#define BDK_PCC_DEV_CON_E_PCM (0x68)
+#define BDK_PCC_DEV_CON_E_PEMX(a) (0x170 + (a))
+#define BDK_PCC_DEV_CON_E_PEM0 (0x2000c0)
+#define BDK_PCC_DEV_CON_E_PEM1 (0x2000c8)
+#define BDK_PCC_DEV_CON_E_PEM2 (0x2000d0)
+#define BDK_PCC_DEV_CON_E_PEM3 (0x2000d8)
+#define BDK_PCC_DEV_CON_E_PKI (0x10200)
+#define BDK_PCC_DEV_CON_E_PKO (0x10300)
+#define BDK_PCC_DEV_CON_E_PSBM (0x107)
+#define BDK_PCC_DEV_CON_E_RAD_CN9 (0x700)
+#define BDK_PCC_DEV_CON_E_RAD_CN88XX (0x200)
+#define BDK_PCC_DEV_CON_E_RAD_CN83XX (0x600)
+#define BDK_PCC_DEV_CON_E_RGXX(a) (0x190 + (a))
+#define BDK_PCC_DEV_CON_E_RNM_CN9 (0x300)
+#define BDK_PCC_DEV_CON_E_RNM_CN81XX (0x200)
+#define BDK_PCC_DEV_CON_E_RNM_CN88XX (0x48)
+#define BDK_PCC_DEV_CON_E_RNM_CN83XX (0x200)
+#define BDK_PCC_DEV_CON_E_RST (0x101)
+#define BDK_PCC_DEV_CON_E_RVUX(a) (0x20100 + 0x100 * (a))
+#define BDK_PCC_DEV_CON_E_SATA0_CN9 (0x10020)
+#define BDK_PCC_DEV_CON_E_SATA0_CN81XX (0xb0)
+#define BDK_PCC_DEV_CON_E_SATA0_CN88XX (0x10020)
+#define BDK_PCC_DEV_CON_E_SATA0_CN83XX (0x10020)
+#define BDK_PCC_DEV_CON_E_SATA1_CN9 (0x10028)
+#define BDK_PCC_DEV_CON_E_SATA1_CN81XX (0xb8)
+#define BDK_PCC_DEV_CON_E_SATA1_CN88XX (0x10028)
+#define BDK_PCC_DEV_CON_E_SATA1_CN83XX (0x10028)
+#define BDK_PCC_DEV_CON_E_SATA10 (0x30030)
+#define BDK_PCC_DEV_CON_E_SATA11 (0x30038)
+#define BDK_PCC_DEV_CON_E_SATA12 (0x30040)
+#define BDK_PCC_DEV_CON_E_SATA13 (0x30048)
+#define BDK_PCC_DEV_CON_E_SATA14 (0x30050)
+#define BDK_PCC_DEV_CON_E_SATA15 (0x30058)
+#define BDK_PCC_DEV_CON_E_SATA2 (0x10030)
+#define BDK_PCC_DEV_CON_E_SATA3 (0x10038)
+#define BDK_PCC_DEV_CON_E_SATA4 (0x10040)
+#define BDK_PCC_DEV_CON_E_SATA5 (0x10048)
+#define BDK_PCC_DEV_CON_E_SATA6 (0x10050)
+#define BDK_PCC_DEV_CON_E_SATA7 (0x10058)
+#define BDK_PCC_DEV_CON_E_SATA8 (0x30020)
+#define BDK_PCC_DEV_CON_E_SATA9 (0x30028)
+#define BDK_PCC_DEV_CON_E_SGP (0x10a)
+#define BDK_PCC_DEV_CON_E_SLI0_CN81XX (0x70)
+#define BDK_PCC_DEV_CON_E_SLI0_CN88XX (0x10010)
+#define BDK_PCC_DEV_CON_E_SLI1 (0x30010)
+#define BDK_PCC_DEV_CON_E_SLIRE0 (0xc0)
+#define BDK_PCC_DEV_CON_E_SMI (0x10b)
+#define BDK_PCC_DEV_CON_E_SMMU0_CN8 (0x10)
+#define BDK_PCC_DEV_CON_E_SMMU0_CN9 (0x18)
+#define BDK_PCC_DEV_CON_E_SMMU1 (0x10008)
+#define BDK_PCC_DEV_CON_E_SMMU2 (0x20008)
+#define BDK_PCC_DEV_CON_E_SMMU3 (0x30008)
+#define BDK_PCC_DEV_CON_E_SSO_CN8 (0x700)
+#define BDK_PCC_DEV_CON_E_SSO_CN9 (0x800)
+#define BDK_PCC_DEV_CON_E_SSOW_CN8 (0x800)
+#define BDK_PCC_DEV_CON_E_SSOW_CN9 (0x900)
+#define BDK_PCC_DEV_CON_E_TIM_CN8 (0xa00)
+#define BDK_PCC_DEV_CON_E_TIM_CN9 (0xb00)
+#define BDK_PCC_DEV_CON_E_TNS (0x20018)
+#define BDK_PCC_DEV_CON_E_TSNX(a) (0x170 + (a))
+#define BDK_PCC_DEV_CON_E_UAAX_CN8(a) (0x140 + (a))
+#define BDK_PCC_DEV_CON_E_UAAX_CN9(a) (0x160 + (a))
+#define BDK_PCC_DEV_CON_E_USBDRDX_CN81XX(a) (0x80 + 8 * (a))
+#define BDK_PCC_DEV_CON_E_USBDRDX_CN83XX(a) (0x10060 + 8 * (a))
+#define BDK_PCC_DEV_CON_E_USBDRDX_CN9(a) (0x10060 + 8 * (a))
+#define BDK_PCC_DEV_CON_E_USBHX(a) (0x80 + 8 * (a))
+#define BDK_PCC_DEV_CON_E_VRMX(a) (0x144 + (a))
+#define BDK_PCC_DEV_CON_E_XCPX(a) (0xe0 + 8 * (a))
+#define BDK_PCC_DEV_CON_E_XCVX(a) (0x110 + (a))
+#define BDK_PCC_DEV_CON_E_ZIP_CN9 (0x10400)
+#define BDK_PCC_DEV_CON_E_ZIP_CN88XX (0x300)
+#define BDK_PCC_DEV_CON_E_ZIP_CN83XX (0x10400)
+
+/**
+ * Enumeration pcc_dev_idl_e
+ *
+ * PCC Device ID Low Enumeration
+ * Enumerates the values of the PCI configuration header Device ID bits
+ * \<7:0\>.
+ *
+ * Internal:
+ * The class_codes are formatted as defined by PCC_CLASS_CODE_S.
+ */
+#define BDK_PCC_DEV_IDL_E_AP5 (0x76)
+#define BDK_PCC_DEV_IDL_E_AVS (0x6a)
+#define BDK_PCC_DEV_IDL_E_BCH (0x43)
+#define BDK_PCC_DEV_IDL_E_BCH_VF (0x44)
+#define BDK_PCC_DEV_IDL_E_BGX (0x26)
+#define BDK_PCC_DEV_IDL_E_BTS (0x88)
+#define BDK_PCC_DEV_IDL_E_CCS (0x6e)
+#define BDK_PCC_DEV_IDL_E_CCU (0x6f)
+#define BDK_PCC_DEV_IDL_E_CER (0x61)
+#define BDK_PCC_DEV_IDL_E_CGX (0x59)
+#define BDK_PCC_DEV_IDL_E_CHIP (0)
+#define BDK_PCC_DEV_IDL_E_CHIP_VF (3)
+#define BDK_PCC_DEV_IDL_E_CPC (0x68)
+#define BDK_PCC_DEV_IDL_E_CPT (0x40)
+#define BDK_PCC_DEV_IDL_E_CPT_VF (0x41)
+#define BDK_PCC_DEV_IDL_E_DAP (0x2c)
+#define BDK_PCC_DEV_IDL_E_DDF (0x45)
+#define BDK_PCC_DEV_IDL_E_DDF_VF (0x46)
+#define BDK_PCC_DEV_IDL_E_DFA (0x19)
+#define BDK_PCC_DEV_IDL_E_DPI (0x57)
+#define BDK_PCC_DEV_IDL_E_DPI5 (0x80)
+#define BDK_PCC_DEV_IDL_E_DPI5_VF (0x81)
+#define BDK_PCC_DEV_IDL_E_DPI_VF (0x58)
+#define BDK_PCC_DEV_IDL_E_FPA (0x52)
+#define BDK_PCC_DEV_IDL_E_FPA_VF (0x53)
+#define BDK_PCC_DEV_IDL_E_FUS5 (0x74)
+#define BDK_PCC_DEV_IDL_E_FUSF (0x32)
+#define BDK_PCC_DEV_IDL_E_GIC (9)
+#define BDK_PCC_DEV_IDL_E_GPIO (0xa)
+#define BDK_PCC_DEV_IDL_E_GSER (0x25)
+#define BDK_PCC_DEV_IDL_E_GSERN (0x28)
+#define BDK_PCC_DEV_IDL_E_GTI (0x17)
+#define BDK_PCC_DEV_IDL_E_IOBN (0x27)
+#define BDK_PCC_DEV_IDL_E_IOBN5 (0x6b)
+#define BDK_PCC_DEV_IDL_E_KEY (0x16)
+#define BDK_PCC_DEV_IDL_E_L2C (0x21)
+#define BDK_PCC_DEV_IDL_E_L2C_CBC (0x2f)
+#define BDK_PCC_DEV_IDL_E_L2C_MCI (0x30)
+#define BDK_PCC_DEV_IDL_E_L2C_TAD (0x2e)
+#define BDK_PCC_DEV_IDL_E_LBK (0x42)
+#define BDK_PCC_DEV_IDL_E_LMC (0x22)
+#define BDK_PCC_DEV_IDL_E_MCC (0x70)
+#define BDK_PCC_DEV_IDL_E_MDC (0x73)
+#define BDK_PCC_DEV_IDL_E_MIO_BOOT (0x11)
+#define BDK_PCC_DEV_IDL_E_MIO_EMM (0x10)
+#define BDK_PCC_DEV_IDL_E_MIO_FUS (0x31)
+#define BDK_PCC_DEV_IDL_E_MIO_PTP (0xc)
+#define BDK_PCC_DEV_IDL_E_MIO_TWS (0x12)
+#define BDK_PCC_DEV_IDL_E_MIX (0xd)
+#define BDK_PCC_DEV_IDL_E_MPI (0xb)
+#define BDK_PCC_DEV_IDL_E_MRML (1)
+#define BDK_PCC_DEV_IDL_E_MRML5 (0x75)
+#define BDK_PCC_DEV_IDL_E_NCSI (0x29)
+#define BDK_PCC_DEV_IDL_E_NDF (0x4f)
+#define BDK_PCC_DEV_IDL_E_NIC (0x1e)
+#define BDK_PCC_DEV_IDL_E_NICL (0x77)
+#define BDK_PCC_DEV_IDL_E_NICL_VF (0x78)
+#define BDK_PCC_DEV_IDL_E_NIC_VF (0x34)
+#define BDK_PCC_DEV_IDL_E_NPC (0x60)
+#define BDK_PCC_DEV_IDL_E_OCLA (0x23)
+#define BDK_PCC_DEV_IDL_E_OCX (0x13)
+#define BDK_PCC_DEV_IDL_E_OCX5 (0x79)
+#define BDK_PCC_DEV_IDL_E_OSM (0x24)
+#define BDK_PCC_DEV_IDL_E_PBUS (0x35)
+#define BDK_PCC_DEV_IDL_E_PCCBR (2)
+#define BDK_PCC_DEV_IDL_E_PCIERC (0x2d)
+#define BDK_PCC_DEV_IDL_E_PCM (0x4e)
+#define BDK_PCC_DEV_IDL_E_PEM (0x20)
+#define BDK_PCC_DEV_IDL_E_PEM5 (0x6c)
+#define BDK_PCC_DEV_IDL_E_PKI (0x47)
+#define BDK_PCC_DEV_IDL_E_PKO (0x48)
+#define BDK_PCC_DEV_IDL_E_PKO_VF (0x49)
+#define BDK_PCC_DEV_IDL_E_PSBM (0x69)
+#define BDK_PCC_DEV_IDL_E_RAD (0x1d)
+#define BDK_PCC_DEV_IDL_E_RAD_VF (0x36)
+#define BDK_PCC_DEV_IDL_E_RGX (0x54)
+#define BDK_PCC_DEV_IDL_E_RNM (0x18)
+#define BDK_PCC_DEV_IDL_E_RNM_VF (0x33)
+#define BDK_PCC_DEV_IDL_E_RST (0xe)
+#define BDK_PCC_DEV_IDL_E_RST5 (0x85)
+#define BDK_PCC_DEV_IDL_E_RVU (0x63)
+#define BDK_PCC_DEV_IDL_E_RVU_AF (0x65)
+#define BDK_PCC_DEV_IDL_E_RVU_VF (0x64)
+#define BDK_PCC_DEV_IDL_E_SATA (0x1c)
+#define BDK_PCC_DEV_IDL_E_SATA5 (0x84)
+#define BDK_PCC_DEV_IDL_E_SGP (0x2a)
+#define BDK_PCC_DEV_IDL_E_SLI (0x15)
+#define BDK_PCC_DEV_IDL_E_SLIRE (0x38)
+#define BDK_PCC_DEV_IDL_E_SMI (0x2b)
+#define BDK_PCC_DEV_IDL_E_SMMU (8)
+#define BDK_PCC_DEV_IDL_E_SMMU3 (0x62)
+#define BDK_PCC_DEV_IDL_E_SSO (0x4a)
+#define BDK_PCC_DEV_IDL_E_SSOW (0x4c)
+#define BDK_PCC_DEV_IDL_E_SSOW_VF (0x4d)
+#define BDK_PCC_DEV_IDL_E_SSO_VF (0x4b)
+#define BDK_PCC_DEV_IDL_E_TIM (0x50)
+#define BDK_PCC_DEV_IDL_E_TIM_VF (0x51)
+#define BDK_PCC_DEV_IDL_E_TNS (0x1f)
+#define BDK_PCC_DEV_IDL_E_TSN (0x6d)
+#define BDK_PCC_DEV_IDL_E_UAA (0xf)
+#define BDK_PCC_DEV_IDL_E_USBDRD (0x55)
+#define BDK_PCC_DEV_IDL_E_USBH (0x1b)
+#define BDK_PCC_DEV_IDL_E_VRM (0x14)
+#define BDK_PCC_DEV_IDL_E_XCP (0x67)
+#define BDK_PCC_DEV_IDL_E_XCV (0x56)
+#define BDK_PCC_DEV_IDL_E_ZIP (0x1a)
+#define BDK_PCC_DEV_IDL_E_ZIP5 (0x82)
+#define BDK_PCC_DEV_IDL_E_ZIP5_VF (0x83)
+#define BDK_PCC_DEV_IDL_E_ZIP_VF (0x37)
+
+/**
+ * Enumeration pcc_jtag_dev_e
+ *
+ * PCC JTAG Device Enumeration
+ * Enumerates the device number sub-field of Cavium-assigned JTAG ID_Codes. Device number is
+ * mapped to Part_Number[7:4]. Where Part_Number [15:0] is mapped to ID_Code[27:12].
+ */
+#define BDK_PCC_JTAG_DEV_E_DAP (1)
+#define BDK_PCC_JTAG_DEV_E_MAIN (0)
+#define BDK_PCC_JTAG_DEV_E_MCP (3)
+#define BDK_PCC_JTAG_DEV_E_SCP (2)
+
+/**
+ * Enumeration pcc_pidr_partnum0_e
+ *
+ * PCC PIDR Part Number 0 Enumeration
+ * When *_PIDR1[PARTNUM1] = PCC_PIDR_PARTNUM1_E::COMP, enumerates the values of Cavium-
+ * assigned CoreSight PIDR part number 0 fields.
+ * For example SMMU()_PIDR0[PARTNUM0].
+ */
+#define BDK_PCC_PIDR_PARTNUM0_E_CTI (0xd)
+#define BDK_PCC_PIDR_PARTNUM0_E_DBG (0xe)
+#define BDK_PCC_PIDR_PARTNUM0_E_ETR (0x13)
+#define BDK_PCC_PIDR_PARTNUM0_E_GICD (2)
+#define BDK_PCC_PIDR_PARTNUM0_E_GICR (1)
+#define BDK_PCC_PIDR_PARTNUM0_E_GITS (3)
+#define BDK_PCC_PIDR_PARTNUM0_E_GTI_BZ (4)
+#define BDK_PCC_PIDR_PARTNUM0_E_GTI_CC (5)
+#define BDK_PCC_PIDR_PARTNUM0_E_GTI_CTL (6)
+#define BDK_PCC_PIDR_PARTNUM0_E_GTI_RD (7)
+#define BDK_PCC_PIDR_PARTNUM0_E_GTI_WC (8)
+#define BDK_PCC_PIDR_PARTNUM0_E_GTI_WR (9)
+#define BDK_PCC_PIDR_PARTNUM0_E_NONE (0)
+#define BDK_PCC_PIDR_PARTNUM0_E_PMU (0xa)
+#define BDK_PCC_PIDR_PARTNUM0_E_RAS (0x12)
+#define BDK_PCC_PIDR_PARTNUM0_E_SMMU (0xb)
+#define BDK_PCC_PIDR_PARTNUM0_E_SMMU3 (0x11)
+#define BDK_PCC_PIDR_PARTNUM0_E_SYSCTI (0xf)
+#define BDK_PCC_PIDR_PARTNUM0_E_TRC (0x10)
+#define BDK_PCC_PIDR_PARTNUM0_E_UAA (0xc)
+
+/**
+ * Enumeration pcc_pidr_partnum1_e
+ *
+ * PCC PIDR Part Number 1 Enumeration
+ * Enumerates the values of Cavium-assigned CoreSight PIDR PARTNUM1 fields, for example
+ * SMMU()_PIDR1[PARTNUM1].
+ */
+#define BDK_PCC_PIDR_PARTNUM1_E_COMP (2)
+#define BDK_PCC_PIDR_PARTNUM1_E_PROD (1)
+
+/**
+ * Enumeration pcc_prod_e
+ *
+ * PCC Device ID Product Enumeration
+ * Enumerates the chip identifier.
+ */
+#define BDK_PCC_PROD_E_CN81XX (0xa2)
+#define BDK_PCC_PROD_E_CN83XX (0xa3)
+#define BDK_PCC_PROD_E_CN88XX (0xa1)
+#define BDK_PCC_PROD_E_CN93XX (0xb2)
+#define BDK_PCC_PROD_E_CN98XX (0xb1)
+#define BDK_PCC_PROD_E_GEN (0xa0)
+
+/**
+ * Enumeration pcc_vendor_e
+ *
+ * PCC Vendor ID Enumeration
+ * Enumerates the values of the PCI configuration header vendor ID.
+ */
+#define BDK_PCC_VENDOR_E_CAVIUM (0x177d)
+
+/**
+ * Enumeration pcc_vsecid_e
+ *
+ * PCC Vendor-Specific Capability ID Enumeration
+ * Enumerates the values of Cavium's vendor-specific PCI capability IDs.
+ * Internal:
+ * See also http://mawiki.caveonetworks.com/wiki/Architecture/PCI_Vendor_Headers
+ */
+#define BDK_PCC_VSECID_E_NONE (0)
+#define BDK_PCC_VSECID_E_SY_RAS_DES (2)
+#define BDK_PCC_VSECID_E_SY_RAS_DP (1)
+#define BDK_PCC_VSECID_E_SY_RSVDX(a) (0 + (a))
+#define BDK_PCC_VSECID_E_TX_BR (0xa1)
+#define BDK_PCC_VSECID_E_TX_PF (0xa0)
+#define BDK_PCC_VSECID_E_TX_VF (0xa2)
+
+/**
+ * Structure pcc_class_code_s
+ *
+ * INTERNAL: PCC Class Code Structure
+ *
+ * Defines the components of the PCC class code.
+ */
+union bdk_pcc_class_code_s
+{
+ uint32_t u;
+ struct bdk_pcc_class_code_s_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_24_31 : 8;
+ uint32_t bcc : 8; /**< [ 23: 16] Base class code. */
+ uint32_t sc : 8; /**< [ 15: 8] Subclass code. */
+ uint32_t pi : 8; /**< [ 7: 0] Programming interface. */
+#else /* Word 0 - Little Endian */
+ uint32_t pi : 8; /**< [ 7: 0] Programming interface. */
+ uint32_t sc : 8; /**< [ 15: 8] Subclass code. */
+ uint32_t bcc : 8; /**< [ 23: 16] Base class code. */
+ uint32_t reserved_24_31 : 8;
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pcc_class_code_s_s cn; */
+};
+
+/**
+ * Structure pcc_dev_con_s
+ *
+ * PCC Device Connection Structure
+ * Defines the components of the PCC device connection values enumerated by PCC_DEV_CON_E,
+ * using ARI format.
+ */
+union bdk_pcc_dev_con_s
+{
+ uint32_t u;
+ struct bdk_pcc_dev_con_s_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_16_31 : 16;
+ uint32_t bus : 8; /**< [ 15: 8] PCI requestor bus number. */
+ uint32_t func : 8; /**< [ 7: 0] For ARI devices (when bus is nonzero), an eight-bit RSL function number.
+
+ For non-ARI devices (when bus is zero), \<7:3\> is the device number, \<2:0\> the function
+ number. */
+#else /* Word 0 - Little Endian */
+ uint32_t func : 8; /**< [ 7: 0] For ARI devices (when bus is nonzero), an eight-bit RSL function number.
+
+ For non-ARI devices (when bus is zero), \<7:3\> is the device number, \<2:0\> the function
+ number. */
+ uint32_t bus : 8; /**< [ 15: 8] PCI requestor bus number. */
+ uint32_t reserved_16_31 : 16;
+#endif /* Word 0 - End */
+ } s;
+ struct bdk_pcc_dev_con_s_cn8
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_18_31 : 14;
+ uint32_t ecam : 2; /**< [ 17: 16] ECAM number. */
+ uint32_t bus : 8; /**< [ 15: 8] PCI requestor bus number. */
+ uint32_t func : 8; /**< [ 7: 0] For ARI devices (when bus is nonzero), an eight-bit RSL function number.
+
+ For non-ARI devices (when bus is zero), \<7:3\> is the device number, \<2:0\> the function
+ number. */
+#else /* Word 0 - Little Endian */
+ uint32_t func : 8; /**< [ 7: 0] For ARI devices (when bus is nonzero), an eight-bit RSL function number.
+
+ For non-ARI devices (when bus is zero), \<7:3\> is the device number, \<2:0\> the function
+ number. */
+ uint32_t bus : 8; /**< [ 15: 8] PCI requestor bus number. */
+ uint32_t ecam : 2; /**< [ 17: 16] ECAM number. */
+ uint32_t reserved_18_31 : 14;
+#endif /* Word 0 - End */
+ } cn8;
+ struct bdk_pcc_dev_con_s_cn9
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_22_31 : 10;
+ uint32_t dmn : 6; /**< [ 21: 16] Domain number. */
+ uint32_t bus : 8; /**< [ 15: 8] PCI requestor bus number. */
+ uint32_t func : 8; /**< [ 7: 0] For ARI devices (when bus is nonzero), an eight-bit RSL function number.
+
+ For non-ARI devices (when bus is zero), \<7:3\> is the device number, \<2:0\> the function
+ number. */
+#else /* Word 0 - Little Endian */
+ uint32_t func : 8; /**< [ 7: 0] For ARI devices (when bus is nonzero), an eight-bit RSL function number.
+
+ For non-ARI devices (when bus is zero), \<7:3\> is the device number, \<2:0\> the function
+ number. */
+ uint32_t bus : 8; /**< [ 15: 8] PCI requestor bus number. */
+ uint32_t dmn : 6; /**< [ 21: 16] Domain number. */
+ uint32_t reserved_22_31 : 10;
+#endif /* Word 0 - End */
+ } cn9;
+};
+
+/**
+ * Structure pcc_ea_entry_s
+ *
+ * PCC PCI Enhanced Allocation Entry Structure
+ * This structure describes the format of an enhanced allocation entry stored in
+ * PCCPF_XXX_EA_ENTRY(). This describes what PCC hardware generates only; software must
+ * implement a full EA parser including testing the [ENTRY_SIZE], [BASE64] and
+ * [OFFSET64] fields.
+ *
+ * PCI configuration registers are 32-bits, however due to tool limitiations this
+ * structure is described as a little-endian 64-bit wide structure.
+ */
+union bdk_pcc_ea_entry_s
+{
+ uint64_t u[3];
+ struct bdk_pcc_ea_entry_s_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint64_t basel : 30; /**< [ 63: 34] Lower bits of the entry 0 base address. */
+ uint64_t base64 : 1; /**< [ 33: 33] 64-bit base, indicates [BASEH] is present. For CNXXXX always set. */
+ uint64_t reserved_32 : 1;
+ uint64_t enable : 1; /**< [ 31: 31] Enable. Always set. */
+ uint64_t w : 1; /**< [ 30: 30] Writable. Always clear. */
+ uint64_t reserved_24_29 : 6;
+ uint64_t sec_prop : 8; /**< [ 23: 16] Secondary properties. For CNXXXX always 0xFF, indicating that the primary properties must
+ be used. */
+ uint64_t pri_prop : 8; /**< [ 15: 8] Primary properties.
+ 0x0 = Memory space, non-prefetchable.
+ 0x4 = Physical function indicating virtual function memory space, non-prefetchable. */
+ uint64_t bei : 4; /**< [ 7: 4] BAR equivelent indicator.
+ 0x0 = Entry is equivalent to BAR 0.
+ 0x2 = Entry is equivalent to BAR 2.
+ 0x4 = Entry is equivalent to BAR 4.
+ 0x7 = Equivalent not indicated.
+ 0x9 = Entry is equivalent to SR-IOV BAR 0.
+ 0xB = Entry is equivalent to SR-IOV BAR 2.
+ 0xD = Entry is equivalent to SR-IOV BAR 4. */
+ uint64_t reserved_3 : 1;
+ uint64_t entry_size : 3; /**< [ 2: 0] Number of 32-bit words following this entry format header, excluding the header
+ itself.
+ 0x4 = Four 32-bit words; header followed by base low, offset low, base high,
+ offset high. */
+#else /* Word 0 - Little Endian */
+ uint64_t entry_size : 3; /**< [ 2: 0] Number of 32-bit words following this entry format header, excluding the header
+ itself.
+ 0x4 = Four 32-bit words; header followed by base low, offset low, base high,
+ offset high. */
+ uint64_t reserved_3 : 1;
+ uint64_t bei : 4; /**< [ 7: 4] BAR equivelent indicator.
+ 0x0 = Entry is equivalent to BAR 0.
+ 0x2 = Entry is equivalent to BAR 2.
+ 0x4 = Entry is equivalent to BAR 4.
+ 0x7 = Equivalent not indicated.
+ 0x9 = Entry is equivalent to SR-IOV BAR 0.
+ 0xB = Entry is equivalent to SR-IOV BAR 2.
+ 0xD = Entry is equivalent to SR-IOV BAR 4. */
+ uint64_t pri_prop : 8; /**< [ 15: 8] Primary properties.
+ 0x0 = Memory space, non-prefetchable.
+ 0x4 = Physical function indicating virtual function memory space, non-prefetchable. */
+ uint64_t sec_prop : 8; /**< [ 23: 16] Secondary properties. For CNXXXX always 0xFF, indicating that the primary properties must
+ be used. */
+ uint64_t reserved_24_29 : 6;
+ uint64_t w : 1; /**< [ 30: 30] Writable. Always clear. */
+ uint64_t enable : 1; /**< [ 31: 31] Enable. Always set. */
+ uint64_t reserved_32 : 1;
+ uint64_t base64 : 1; /**< [ 33: 33] 64-bit base, indicates [BASEH] is present. For CNXXXX always set. */
+ uint64_t basel : 30; /**< [ 63: 34] Lower bits of the entry 0 base address. */
+#endif /* Word 0 - End */
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 1 - Big Endian */
+ uint64_t baseh : 32; /**< [127: 96] Upper bits of the entry 0 base address. */
+ uint64_t offsetl : 30; /**< [ 95: 66] Lower bits of the entry 0 offset. Bits \<1:0\> of the offset are not present and
+ must be interpreted as all-ones. */
+ uint64_t offset64 : 1; /**< [ 65: 65] 64-bit offset, indicates [OFFSETH] is present. For CNXXXX always set. */
+ uint64_t reserved_64 : 1;
+#else /* Word 1 - Little Endian */
+ uint64_t reserved_64 : 1;
+ uint64_t offset64 : 1; /**< [ 65: 65] 64-bit offset, indicates [OFFSETH] is present. For CNXXXX always set. */
+ uint64_t offsetl : 30; /**< [ 95: 66] Lower bits of the entry 0 offset. Bits \<1:0\> of the offset are not present and
+ must be interpreted as all-ones. */
+ uint64_t baseh : 32; /**< [127: 96] Upper bits of the entry 0 base address. */
+#endif /* Word 1 - End */
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 2 - Big Endian */
+ uint64_t reserved_160_191 : 32;
+ uint64_t offseth : 32; /**< [159:128] Upper bits of the entry 0 offset. */
+#else /* Word 2 - Little Endian */
+ uint64_t offseth : 32; /**< [159:128] Upper bits of the entry 0 offset. */
+ uint64_t reserved_160_191 : 32;
+#endif /* Word 2 - End */
+ } s;
+ /* struct bdk_pcc_ea_entry_s_s cn; */
+};
+
+/**
+ * Register (PCCPF) pccpf_xxx_aer_cap_hdr
+ *
+ * PCC PF AER Capability Header Register
+ * This register is the header of the 44-byte PCI advanced error reporting (AER) capability
+ * structure.
+ */
+union bdk_pccpf_xxx_aer_cap_hdr
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_aer_cap_hdr_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t nco : 12; /**< [ 31: 20](RO) Next capability offset. If this device is on a nonzero bus, points to
+ PCCPF_XXX_ARI_CAP_HDR, else 0x0. */
+ uint32_t cv : 4; /**< [ 19: 16](RO) Capability version. */
+ uint32_t aerid : 16; /**< [ 15: 0](RO) PCIE extended capability. Indicates AER capability. */
+#else /* Word 0 - Little Endian */
+ uint32_t aerid : 16; /**< [ 15: 0](RO) PCIE extended capability. Indicates AER capability. */
+ uint32_t cv : 4; /**< [ 19: 16](RO) Capability version. */
+ uint32_t nco : 12; /**< [ 31: 20](RO) Next capability offset. If this device is on a nonzero bus, points to
+ PCCPF_XXX_ARI_CAP_HDR, else 0x0. */
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_aer_cap_hdr_s cn; */
+};
+typedef union bdk_pccpf_xxx_aer_cap_hdr bdk_pccpf_xxx_aer_cap_hdr_t;
+
+#define BDK_PCCPF_XXX_AER_CAP_HDR BDK_PCCPF_XXX_AER_CAP_HDR_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_AER_CAP_HDR_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_AER_CAP_HDR_FUNC(void)
+{
+ if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX))
+ return 0x140;
+ __bdk_csr_fatal("PCCPF_XXX_AER_CAP_HDR", 0, 0, 0, 0, 0);
+}
+
+#define typedef_BDK_PCCPF_XXX_AER_CAP_HDR bdk_pccpf_xxx_aer_cap_hdr_t
+#define bustype_BDK_PCCPF_XXX_AER_CAP_HDR BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_AER_CAP_HDR "PCCPF_XXX_AER_CAP_HDR"
+#define busnum_BDK_PCCPF_XXX_AER_CAP_HDR 0
+#define arguments_BDK_PCCPF_XXX_AER_CAP_HDR -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_aer_cor_mask
+ *
+ * PCC PF AER Correctable Error Mask Register
+ * This register contains a mask bit for each nonreserved bit in PCCPF_XXX_AER_COR_STATUS.
+ * The mask bits are R/W for PCIe and software compatibility but are not used by hardware.
+ *
+ * This register is reset on a chip domain reset.
+ */
+union bdk_pccpf_xxx_aer_cor_mask
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_aer_cor_mask_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_15_31 : 17;
+ uint32_t cor_intn : 1; /**< [ 14: 14](R/W) Corrected internal error. */
+ uint32_t adv_nfat : 1; /**< [ 13: 13](R/W) Advisory nonfatal error. */
+ uint32_t rep_timer : 1; /**< [ 12: 12](R/W) Replay timer timeout. */
+ uint32_t reserved_9_11 : 3;
+ uint32_t rep_roll : 1; /**< [ 8: 8](R/W) Replay number rollover. */
+ uint32_t bad_dllp : 1; /**< [ 7: 7](R/W) Bad DLLP. */
+ uint32_t bad_tlp : 1; /**< [ 6: 6](R/W) Bad TLP. */
+ uint32_t reserved_1_5 : 5;
+ uint32_t rcvr : 1; /**< [ 0: 0](R/W) Receiver error. */
+#else /* Word 0 - Little Endian */
+ uint32_t rcvr : 1; /**< [ 0: 0](R/W) Receiver error. */
+ uint32_t reserved_1_5 : 5;
+ uint32_t bad_tlp : 1; /**< [ 6: 6](R/W) Bad TLP. */
+ uint32_t bad_dllp : 1; /**< [ 7: 7](R/W) Bad DLLP. */
+ uint32_t rep_roll : 1; /**< [ 8: 8](R/W) Replay number rollover. */
+ uint32_t reserved_9_11 : 3;
+ uint32_t rep_timer : 1; /**< [ 12: 12](R/W) Replay timer timeout. */
+ uint32_t adv_nfat : 1; /**< [ 13: 13](R/W) Advisory nonfatal error. */
+ uint32_t cor_intn : 1; /**< [ 14: 14](R/W) Corrected internal error. */
+ uint32_t reserved_15_31 : 17;
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_aer_cor_mask_s cn; */
+};
+typedef union bdk_pccpf_xxx_aer_cor_mask bdk_pccpf_xxx_aer_cor_mask_t;
+
+#define BDK_PCCPF_XXX_AER_COR_MASK BDK_PCCPF_XXX_AER_COR_MASK_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_AER_COR_MASK_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_AER_COR_MASK_FUNC(void)
+{
+ if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX))
+ return 0x154;
+ __bdk_csr_fatal("PCCPF_XXX_AER_COR_MASK", 0, 0, 0, 0, 0);
+}
+
+#define typedef_BDK_PCCPF_XXX_AER_COR_MASK bdk_pccpf_xxx_aer_cor_mask_t
+#define bustype_BDK_PCCPF_XXX_AER_COR_MASK BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_AER_COR_MASK "PCCPF_XXX_AER_COR_MASK"
+#define busnum_BDK_PCCPF_XXX_AER_COR_MASK 0
+#define arguments_BDK_PCCPF_XXX_AER_COR_MASK -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_aer_cor_status
+ *
+ * PCC PF AER Correctable Error Status Register
+ * This register is reset on a chip domain reset.
+ */
+union bdk_pccpf_xxx_aer_cor_status
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_aer_cor_status_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_15_31 : 17;
+ uint32_t cor_intn : 1; /**< [ 14: 14](R/W1C/H) Corrected internal error. Set when one is written to PCCPF_XXX_VSEC_CTL[COR_INTN]. */
+ uint32_t adv_nfat : 1; /**< [ 13: 13](R/W1C/H) Advisory non-fatal error. Set when one is written to PCCPF_XXX_VSEC_CTL[ADV_NFAT]. */
+ uint32_t rep_timer : 1; /**< [ 12: 12](RO) Replay timer timeout. Always zero. */
+ uint32_t reserved_9_11 : 3;
+ uint32_t rep_roll : 1; /**< [ 8: 8](RO) Replay number rollover. Always zero. */
+ uint32_t bad_dllp : 1; /**< [ 7: 7](RO) Bad DLLP. Always zero. */
+ uint32_t bad_tlp : 1; /**< [ 6: 6](RO) Bad TLP. Always zero. */
+ uint32_t reserved_1_5 : 5;
+ uint32_t rcvr : 1; /**< [ 0: 0](RO) Receiver error. Always zero. */
+#else /* Word 0 - Little Endian */
+ uint32_t rcvr : 1; /**< [ 0: 0](RO) Receiver error. Always zero. */
+ uint32_t reserved_1_5 : 5;
+ uint32_t bad_tlp : 1; /**< [ 6: 6](RO) Bad TLP. Always zero. */
+ uint32_t bad_dllp : 1; /**< [ 7: 7](RO) Bad DLLP. Always zero. */
+ uint32_t rep_roll : 1; /**< [ 8: 8](RO) Replay number rollover. Always zero. */
+ uint32_t reserved_9_11 : 3;
+ uint32_t rep_timer : 1; /**< [ 12: 12](RO) Replay timer timeout. Always zero. */
+ uint32_t adv_nfat : 1; /**< [ 13: 13](R/W1C/H) Advisory non-fatal error. Set when one is written to PCCPF_XXX_VSEC_CTL[ADV_NFAT]. */
+ uint32_t cor_intn : 1; /**< [ 14: 14](R/W1C/H) Corrected internal error. Set when one is written to PCCPF_XXX_VSEC_CTL[COR_INTN]. */
+ uint32_t reserved_15_31 : 17;
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_aer_cor_status_s cn; */
+};
+typedef union bdk_pccpf_xxx_aer_cor_status bdk_pccpf_xxx_aer_cor_status_t;
+
+#define BDK_PCCPF_XXX_AER_COR_STATUS BDK_PCCPF_XXX_AER_COR_STATUS_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_AER_COR_STATUS_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_AER_COR_STATUS_FUNC(void)
+{
+ if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX))
+ return 0x150;
+ __bdk_csr_fatal("PCCPF_XXX_AER_COR_STATUS", 0, 0, 0, 0, 0);
+}
+
+#define typedef_BDK_PCCPF_XXX_AER_COR_STATUS bdk_pccpf_xxx_aer_cor_status_t
+#define bustype_BDK_PCCPF_XXX_AER_COR_STATUS BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_AER_COR_STATUS "PCCPF_XXX_AER_COR_STATUS"
+#define busnum_BDK_PCCPF_XXX_AER_COR_STATUS 0
+#define arguments_BDK_PCCPF_XXX_AER_COR_STATUS -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_aer_uncor_mask
+ *
+ * PCC PF AER Uncorrectable Error Mask Register
+ * This register contains a mask bit for each nonreserved bit in PCCPF_XXX_AER_UNCOR_STATUS.
+ * The mask bits are R/W for PCIe and software compatibility but are not used by hardware.
+ *
+ * This register is reset on a chip domain reset.
+ */
+union bdk_pccpf_xxx_aer_uncor_mask
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_aer_uncor_mask_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_23_31 : 9;
+ uint32_t uncor_intn : 1; /**< [ 22: 22](R/W) Uncorrectable internal error. */
+ uint32_t reserved_21 : 1;
+ uint32_t unsup : 1; /**< [ 20: 20](R/W) Unsupported request error. */
+ uint32_t reserved_19 : 1;
+ uint32_t malf_tlp : 1; /**< [ 18: 18](R/W) Malformed TLP. */
+ uint32_t reserved_17 : 1;
+ uint32_t unx_comp : 1; /**< [ 16: 16](R/W) Unexpected completion. */
+ uint32_t reserved_15 : 1;
+ uint32_t comp_time : 1; /**< [ 14: 14](R/W) Completion timeout. */
+ uint32_t reserved_13 : 1;
+ uint32_t poison_tlp : 1; /**< [ 12: 12](R/W) Poisoned TLP received. */
+ uint32_t reserved_5_11 : 7;
+ uint32_t dlp : 1; /**< [ 4: 4](R/W) Data link protocol error. */
+ uint32_t reserved_0_3 : 4;
+#else /* Word 0 - Little Endian */
+ uint32_t reserved_0_3 : 4;
+ uint32_t dlp : 1; /**< [ 4: 4](R/W) Data link protocol error. */
+ uint32_t reserved_5_11 : 7;
+ uint32_t poison_tlp : 1; /**< [ 12: 12](R/W) Poisoned TLP received. */
+ uint32_t reserved_13 : 1;
+ uint32_t comp_time : 1; /**< [ 14: 14](R/W) Completion timeout. */
+ uint32_t reserved_15 : 1;
+ uint32_t unx_comp : 1; /**< [ 16: 16](R/W) Unexpected completion. */
+ uint32_t reserved_17 : 1;
+ uint32_t malf_tlp : 1; /**< [ 18: 18](R/W) Malformed TLP. */
+ uint32_t reserved_19 : 1;
+ uint32_t unsup : 1; /**< [ 20: 20](R/W) Unsupported request error. */
+ uint32_t reserved_21 : 1;
+ uint32_t uncor_intn : 1; /**< [ 22: 22](R/W) Uncorrectable internal error. */
+ uint32_t reserved_23_31 : 9;
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_aer_uncor_mask_s cn; */
+};
+typedef union bdk_pccpf_xxx_aer_uncor_mask bdk_pccpf_xxx_aer_uncor_mask_t;
+
+#define BDK_PCCPF_XXX_AER_UNCOR_MASK BDK_PCCPF_XXX_AER_UNCOR_MASK_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_AER_UNCOR_MASK_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_AER_UNCOR_MASK_FUNC(void)
+{
+ if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX))
+ return 0x148;
+ __bdk_csr_fatal("PCCPF_XXX_AER_UNCOR_MASK", 0, 0, 0, 0, 0);
+}
+
+#define typedef_BDK_PCCPF_XXX_AER_UNCOR_MASK bdk_pccpf_xxx_aer_uncor_mask_t
+#define bustype_BDK_PCCPF_XXX_AER_UNCOR_MASK BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_AER_UNCOR_MASK "PCCPF_XXX_AER_UNCOR_MASK"
+#define busnum_BDK_PCCPF_XXX_AER_UNCOR_MASK 0
+#define arguments_BDK_PCCPF_XXX_AER_UNCOR_MASK -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_aer_uncor_sever
+ *
+ * PCC PF AER Uncorrectable Error Severity Register
+ * This register controls whether an individual error is reported as a nonfatal or
+ * fatal error. An error is reported as fatal when the corresponding severity bit is set, and
+ * nonfatal otherwise.
+ *
+ * This register is reset on a chip domain reset.
+ */
+union bdk_pccpf_xxx_aer_uncor_sever
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_aer_uncor_sever_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_23_31 : 9;
+ uint32_t uncor_intn : 1; /**< [ 22: 22](R/W) Uncorrectable internal error. */
+ uint32_t reserved_21 : 1;
+ uint32_t unsup : 1; /**< [ 20: 20](R/W) Unsupported request error. */
+ uint32_t reserved_19 : 1;
+ uint32_t malf_tlp : 1; /**< [ 18: 18](R/W) Malformed TLP. */
+ uint32_t reserved_17 : 1;
+ uint32_t unx_comp : 1; /**< [ 16: 16](R/W) Unexpected completion. */
+ uint32_t reserved_15 : 1;
+ uint32_t comp_time : 1; /**< [ 14: 14](R/W) Completion timeout. */
+ uint32_t reserved_13 : 1;
+ uint32_t poison_tlp : 1; /**< [ 12: 12](R/W) Poisoned TLP received. */
+ uint32_t reserved_5_11 : 7;
+ uint32_t dlp : 1; /**< [ 4: 4](R/W) Data link protocol error. */
+ uint32_t reserved_0_3 : 4;
+#else /* Word 0 - Little Endian */
+ uint32_t reserved_0_3 : 4;
+ uint32_t dlp : 1; /**< [ 4: 4](R/W) Data link protocol error. */
+ uint32_t reserved_5_11 : 7;
+ uint32_t poison_tlp : 1; /**< [ 12: 12](R/W) Poisoned TLP received. */
+ uint32_t reserved_13 : 1;
+ uint32_t comp_time : 1; /**< [ 14: 14](R/W) Completion timeout. */
+ uint32_t reserved_15 : 1;
+ uint32_t unx_comp : 1; /**< [ 16: 16](R/W) Unexpected completion. */
+ uint32_t reserved_17 : 1;
+ uint32_t malf_tlp : 1; /**< [ 18: 18](R/W) Malformed TLP. */
+ uint32_t reserved_19 : 1;
+ uint32_t unsup : 1; /**< [ 20: 20](R/W) Unsupported request error. */
+ uint32_t reserved_21 : 1;
+ uint32_t uncor_intn : 1; /**< [ 22: 22](R/W) Uncorrectable internal error. */
+ uint32_t reserved_23_31 : 9;
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_aer_uncor_sever_s cn; */
+};
+typedef union bdk_pccpf_xxx_aer_uncor_sever bdk_pccpf_xxx_aer_uncor_sever_t;
+
+#define BDK_PCCPF_XXX_AER_UNCOR_SEVER BDK_PCCPF_XXX_AER_UNCOR_SEVER_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_AER_UNCOR_SEVER_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_AER_UNCOR_SEVER_FUNC(void)
+{
+ if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX))
+ return 0x14c;
+ __bdk_csr_fatal("PCCPF_XXX_AER_UNCOR_SEVER", 0, 0, 0, 0, 0);
+}
+
+#define typedef_BDK_PCCPF_XXX_AER_UNCOR_SEVER bdk_pccpf_xxx_aer_uncor_sever_t
+#define bustype_BDK_PCCPF_XXX_AER_UNCOR_SEVER BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_AER_UNCOR_SEVER "PCCPF_XXX_AER_UNCOR_SEVER"
+#define busnum_BDK_PCCPF_XXX_AER_UNCOR_SEVER 0
+#define arguments_BDK_PCCPF_XXX_AER_UNCOR_SEVER -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_aer_uncor_status
+ *
+ * PCC PF AER Uncorrectable Error Status Register
+ * This register is reset on a chip domain reset.
+ */
+union bdk_pccpf_xxx_aer_uncor_status
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_aer_uncor_status_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_23_31 : 9;
+ uint32_t uncor_intn : 1; /**< [ 22: 22](R/W1C/H) Uncorrectable internal error. Set when one is written to PCCPF_XXX_VSEC_CTL[UNCOR_INTN]. */
+ uint32_t reserved_21 : 1;
+ uint32_t unsup : 1; /**< [ 20: 20](RO) Unsupported request error. Always zero. */
+ uint32_t reserved_19 : 1;
+ uint32_t malf_tlp : 1; /**< [ 18: 18](RO) Malformed TLP. Always zero. */
+ uint32_t reserved_17 : 1;
+ uint32_t unx_comp : 1; /**< [ 16: 16](RO) Unexpected completion. Always zero. */
+ uint32_t reserved_15 : 1;
+ uint32_t comp_time : 1; /**< [ 14: 14](RO) Completion timeout. Always zero. */
+ uint32_t reserved_13 : 1;
+ uint32_t poison_tlp : 1; /**< [ 12: 12](R/W1C/H) Poisoned TLP received. Set when one is written to PCCPF_XXX_VSEC_CTL[POISON_TLP]. */
+ uint32_t reserved_5_11 : 7;
+ uint32_t dlp : 1; /**< [ 4: 4](RO) Data link protocol error. Always zero. */
+ uint32_t reserved_0_3 : 4;
+#else /* Word 0 - Little Endian */
+ uint32_t reserved_0_3 : 4;
+ uint32_t dlp : 1; /**< [ 4: 4](RO) Data link protocol error. Always zero. */
+ uint32_t reserved_5_11 : 7;
+ uint32_t poison_tlp : 1; /**< [ 12: 12](R/W1C/H) Poisoned TLP received. Set when one is written to PCCPF_XXX_VSEC_CTL[POISON_TLP]. */
+ uint32_t reserved_13 : 1;
+ uint32_t comp_time : 1; /**< [ 14: 14](RO) Completion timeout. Always zero. */
+ uint32_t reserved_15 : 1;
+ uint32_t unx_comp : 1; /**< [ 16: 16](RO) Unexpected completion. Always zero. */
+ uint32_t reserved_17 : 1;
+ uint32_t malf_tlp : 1; /**< [ 18: 18](RO) Malformed TLP. Always zero. */
+ uint32_t reserved_19 : 1;
+ uint32_t unsup : 1; /**< [ 20: 20](RO) Unsupported request error. Always zero. */
+ uint32_t reserved_21 : 1;
+ uint32_t uncor_intn : 1; /**< [ 22: 22](R/W1C/H) Uncorrectable internal error. Set when one is written to PCCPF_XXX_VSEC_CTL[UNCOR_INTN]. */
+ uint32_t reserved_23_31 : 9;
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_aer_uncor_status_s cn; */
+};
+typedef union bdk_pccpf_xxx_aer_uncor_status bdk_pccpf_xxx_aer_uncor_status_t;
+
+#define BDK_PCCPF_XXX_AER_UNCOR_STATUS BDK_PCCPF_XXX_AER_UNCOR_STATUS_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_AER_UNCOR_STATUS_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_AER_UNCOR_STATUS_FUNC(void)
+{
+ if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX))
+ return 0x144;
+ __bdk_csr_fatal("PCCPF_XXX_AER_UNCOR_STATUS", 0, 0, 0, 0, 0);
+}
+
+#define typedef_BDK_PCCPF_XXX_AER_UNCOR_STATUS bdk_pccpf_xxx_aer_uncor_status_t
+#define bustype_BDK_PCCPF_XXX_AER_UNCOR_STATUS BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_AER_UNCOR_STATUS "PCCPF_XXX_AER_UNCOR_STATUS"
+#define busnum_BDK_PCCPF_XXX_AER_UNCOR_STATUS 0
+#define arguments_BDK_PCCPF_XXX_AER_UNCOR_STATUS -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_ari_cap_hdr
+ *
+ * PCC PF ARI Capability Header Register
+ * This register is the header of the eight-byte PCI ARI capability structure.
+ * If this device is on bus 0x0, this ARI header is not present and reads as 0x0.
+ */
+union bdk_pccpf_xxx_ari_cap_hdr
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_ari_cap_hdr_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t nco : 12; /**< [ 31: 20](RO) Next capability offset. Points to PCCPF_XXX_VSEC_CAP_HDR. */
+ uint32_t cv : 4; /**< [ 19: 16](RO) Capability version. */
+ uint32_t ariid : 16; /**< [ 15: 0](RO) PCIE extended capability. */
+#else /* Word 0 - Little Endian */
+ uint32_t ariid : 16; /**< [ 15: 0](RO) PCIE extended capability. */
+ uint32_t cv : 4; /**< [ 19: 16](RO) Capability version. */
+ uint32_t nco : 12; /**< [ 31: 20](RO) Next capability offset. Points to PCCPF_XXX_VSEC_CAP_HDR. */
+#endif /* Word 0 - End */
+ } s;
+ struct bdk_pccpf_xxx_ari_cap_hdr_cn9
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t nco : 12; /**< [ 31: 20](RO) Next capability offset. If SR-IOV is supported as per PCC_DEV_IDL_E, points to
+ PCCPF_XXX_SRIOV_CAP_HDR, else 0x0. */
+ uint32_t cv : 4; /**< [ 19: 16](RO) Capability version (0x1). */
+ uint32_t ariid : 16; /**< [ 15: 0](RO) PCIE extended capability (0xe). */
+#else /* Word 0 - Little Endian */
+ uint32_t ariid : 16; /**< [ 15: 0](RO) PCIE extended capability (0xe). */
+ uint32_t cv : 4; /**< [ 19: 16](RO) Capability version (0x1). */
+ uint32_t nco : 12; /**< [ 31: 20](RO) Next capability offset. If SR-IOV is supported as per PCC_DEV_IDL_E, points to
+ PCCPF_XXX_SRIOV_CAP_HDR, else 0x0. */
+#endif /* Word 0 - End */
+ } cn9;
+ /* struct bdk_pccpf_xxx_ari_cap_hdr_cn9 cn81xx; */
+ /* struct bdk_pccpf_xxx_ari_cap_hdr_s cn88xx; */
+ /* struct bdk_pccpf_xxx_ari_cap_hdr_cn9 cn83xx; */
+};
+typedef union bdk_pccpf_xxx_ari_cap_hdr bdk_pccpf_xxx_ari_cap_hdr_t;
+
+#define BDK_PCCPF_XXX_ARI_CAP_HDR BDK_PCCPF_XXX_ARI_CAP_HDR_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_ARI_CAP_HDR_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_ARI_CAP_HDR_FUNC(void)
+{
+ if (CAVIUM_IS_MODEL(CAVIUM_CN81XX))
+ return 0x140;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN83XX))
+ return 0x140;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN88XX))
+ return 0x100;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX))
+ return 0x170;
+ __bdk_csr_fatal("PCCPF_XXX_ARI_CAP_HDR", 0, 0, 0, 0, 0);
+}
+
+#define typedef_BDK_PCCPF_XXX_ARI_CAP_HDR bdk_pccpf_xxx_ari_cap_hdr_t
+#define bustype_BDK_PCCPF_XXX_ARI_CAP_HDR BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_ARI_CAP_HDR "PCCPF_XXX_ARI_CAP_HDR"
+#define busnum_BDK_PCCPF_XXX_ARI_CAP_HDR 0
+#define arguments_BDK_PCCPF_XXX_ARI_CAP_HDR -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_bar0l
+ *
+ * PCC PF Base Address 0 Lower Register
+ */
+union bdk_pccpf_xxx_bar0l
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_bar0l_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_0_31 : 32;
+#else /* Word 0 - Little Endian */
+ uint32_t reserved_0_31 : 32;
+#endif /* Word 0 - End */
+ } s;
+ struct bdk_pccpf_xxx_bar0l_cn88xxp1
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t lbab : 16; /**< [ 31: 16](R/W/H) Lower bits of the BAR 0 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__pfbar0_rbsz and tie__pfbar0_offset. */
+ uint32_t reserved_4_15 : 12;
+ uint32_t pf : 1; /**< [ 3: 3](RO) Prefetchable. */
+ uint32_t typ : 2; /**< [ 2: 1](RO) BAR type. 0x0 if not implemented, else 0x2:
+ 0x0 = 32-bit BAR, or BAR not present.
+ 0x2 = 64-bit BAR. */
+ uint32_t mspc : 1; /**< [ 0: 0](RO) Memory space indicator.
+ 0 = BAR is a memory BAR.
+ 1 = BAR is an I/O BAR. */
+#else /* Word 0 - Little Endian */
+ uint32_t mspc : 1; /**< [ 0: 0](RO) Memory space indicator.
+ 0 = BAR is a memory BAR.
+ 1 = BAR is an I/O BAR. */
+ uint32_t typ : 2; /**< [ 2: 1](RO) BAR type. 0x0 if not implemented, else 0x2:
+ 0x0 = 32-bit BAR, or BAR not present.
+ 0x2 = 64-bit BAR. */
+ uint32_t pf : 1; /**< [ 3: 3](RO) Prefetchable. */
+ uint32_t reserved_4_15 : 12;
+ uint32_t lbab : 16; /**< [ 31: 16](R/W/H) Lower bits of the BAR 0 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__pfbar0_rbsz and tie__pfbar0_offset. */
+#endif /* Word 0 - End */
+ } cn88xxp1;
+ struct bdk_pccpf_xxx_bar0l_cn9
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t bar : 32; /**< [ 31: 0](RO) Always zero. Enhanced allocation used instead of BARs. */
+#else /* Word 0 - Little Endian */
+ uint32_t bar : 32; /**< [ 31: 0](RO) Always zero. Enhanced allocation used instead of BARs. */
+#endif /* Word 0 - End */
+ } cn9;
+ struct bdk_pccpf_xxx_bar0l_cn81xx
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t lbab : 16; /**< [ 31: 16](R/W/H) Lower bits of the BAR 0 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__pfbar0_rbsz and tie__pfbar0_offset. */
+ uint32_t reserved_4_15 : 12;
+ uint32_t pf : 1; /**< [ 3: 3](RO) Prefetchable. */
+ uint32_t typ : 2; /**< [ 2: 1](RO/H) BAR type. 0x0 if not implemented or PCCPF_XXX_VSEC_SCTL[EA] is set, else 0x2:
+ 0x0 = 32-bit BAR, or BAR not present.
+ 0x2 = 64-bit BAR. */
+ uint32_t mspc : 1; /**< [ 0: 0](RO) Memory space indicator.
+ 0 = BAR is a memory BAR.
+ 1 = BAR is an I/O BAR. */
+#else /* Word 0 - Little Endian */
+ uint32_t mspc : 1; /**< [ 0: 0](RO) Memory space indicator.
+ 0 = BAR is a memory BAR.
+ 1 = BAR is an I/O BAR. */
+ uint32_t typ : 2; /**< [ 2: 1](RO/H) BAR type. 0x0 if not implemented or PCCPF_XXX_VSEC_SCTL[EA] is set, else 0x2:
+ 0x0 = 32-bit BAR, or BAR not present.
+ 0x2 = 64-bit BAR. */
+ uint32_t pf : 1; /**< [ 3: 3](RO) Prefetchable. */
+ uint32_t reserved_4_15 : 12;
+ uint32_t lbab : 16; /**< [ 31: 16](R/W/H) Lower bits of the BAR 0 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__pfbar0_rbsz and tie__pfbar0_offset. */
+#endif /* Word 0 - End */
+ } cn81xx;
+ /* struct bdk_pccpf_xxx_bar0l_cn81xx cn83xx; */
+ /* struct bdk_pccpf_xxx_bar0l_cn81xx cn88xxp2; */
+};
+typedef union bdk_pccpf_xxx_bar0l bdk_pccpf_xxx_bar0l_t;
+
+#define BDK_PCCPF_XXX_BAR0L BDK_PCCPF_XXX_BAR0L_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_BAR0L_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_BAR0L_FUNC(void)
+{
+ return 0x10;
+}
+
+#define typedef_BDK_PCCPF_XXX_BAR0L bdk_pccpf_xxx_bar0l_t
+#define bustype_BDK_PCCPF_XXX_BAR0L BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_BAR0L "PCCPF_XXX_BAR0L"
+#define busnum_BDK_PCCPF_XXX_BAR0L 0
+#define arguments_BDK_PCCPF_XXX_BAR0L -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_bar0u
+ *
+ * PCC PF Base Address 0 Upper Register
+ */
+union bdk_pccpf_xxx_bar0u
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_bar0u_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_0_31 : 32;
+#else /* Word 0 - Little Endian */
+ uint32_t reserved_0_31 : 32;
+#endif /* Word 0 - End */
+ } s;
+ struct bdk_pccpf_xxx_bar0u_cn8
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t ubab : 32; /**< [ 31: 0](R/W/H) Contains the upper 32 bits of the BAR 0 base address. Bits corresponding to address bits
+ less than the size of the BAR are read-as-zero, other bits are read-write only to allow
+ determining the size of the BAR. Hardware has fixed address decoding and does not use this
+ BAR for address decoding. After sizing, for proper software behavior, software must
+ restore the register value, where the proper value may be read from PCCPF_XXX_VSEC_BAR0U,
+ with software writing the node number into the field bits corresponding to address bits
+ \<45:44\>.
+
+ Internal:
+ From PCC's tie__pfbar0_rbsz and tie__pfbar0_offset. */
+#else /* Word 0 - Little Endian */
+ uint32_t ubab : 32; /**< [ 31: 0](R/W/H) Contains the upper 32 bits of the BAR 0 base address. Bits corresponding to address bits
+ less than the size of the BAR are read-as-zero, other bits are read-write only to allow
+ determining the size of the BAR. Hardware has fixed address decoding and does not use this
+ BAR for address decoding. After sizing, for proper software behavior, software must
+ restore the register value, where the proper value may be read from PCCPF_XXX_VSEC_BAR0U,
+ with software writing the node number into the field bits corresponding to address bits
+ \<45:44\>.
+
+ Internal:
+ From PCC's tie__pfbar0_rbsz and tie__pfbar0_offset. */
+#endif /* Word 0 - End */
+ } cn8;
+ struct bdk_pccpf_xxx_bar0u_cn9
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t bar : 32; /**< [ 31: 0](RO) Always zero. Enhanced allocation used instead of BARs. */
+#else /* Word 0 - Little Endian */
+ uint32_t bar : 32; /**< [ 31: 0](RO) Always zero. Enhanced allocation used instead of BARs. */
+#endif /* Word 0 - End */
+ } cn9;
+};
+typedef union bdk_pccpf_xxx_bar0u bdk_pccpf_xxx_bar0u_t;
+
+#define BDK_PCCPF_XXX_BAR0U BDK_PCCPF_XXX_BAR0U_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_BAR0U_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_BAR0U_FUNC(void)
+{
+ return 0x14;
+}
+
+#define typedef_BDK_PCCPF_XXX_BAR0U bdk_pccpf_xxx_bar0u_t
+#define bustype_BDK_PCCPF_XXX_BAR0U BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_BAR0U "PCCPF_XXX_BAR0U"
+#define busnum_BDK_PCCPF_XXX_BAR0U 0
+#define arguments_BDK_PCCPF_XXX_BAR0U -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_bar2l
+ *
+ * PCC PF Base Address 2 Lower Register
+ */
+union bdk_pccpf_xxx_bar2l
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_bar2l_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_0_31 : 32;
+#else /* Word 0 - Little Endian */
+ uint32_t reserved_0_31 : 32;
+#endif /* Word 0 - End */
+ } s;
+ struct bdk_pccpf_xxx_bar2l_cn88xxp1
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t lbab : 16; /**< [ 31: 16](R/W/H) Lower bits of the BAR 2 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__pfbar2_rbsz and tie__pfbar2_offset. */
+ uint32_t reserved_4_15 : 12;
+ uint32_t pf : 1; /**< [ 3: 3](RO) Prefetchable. */
+ uint32_t typ : 2; /**< [ 2: 1](RO) BAR type. 0x0 if not implemented, else 0x2:
+ 0x0 = 32-bit BAR, or BAR not present.
+ 0x2 = 64-bit BAR. */
+ uint32_t mspc : 1; /**< [ 0: 0](RO) Memory space indicator.
+ 0 = BAR is a memory BAR.
+ 1 = BAR is an I/O BAR. */
+#else /* Word 0 - Little Endian */
+ uint32_t mspc : 1; /**< [ 0: 0](RO) Memory space indicator.
+ 0 = BAR is a memory BAR.
+ 1 = BAR is an I/O BAR. */
+ uint32_t typ : 2; /**< [ 2: 1](RO) BAR type. 0x0 if not implemented, else 0x2:
+ 0x0 = 32-bit BAR, or BAR not present.
+ 0x2 = 64-bit BAR. */
+ uint32_t pf : 1; /**< [ 3: 3](RO) Prefetchable. */
+ uint32_t reserved_4_15 : 12;
+ uint32_t lbab : 16; /**< [ 31: 16](R/W/H) Lower bits of the BAR 2 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__pfbar2_rbsz and tie__pfbar2_offset. */
+#endif /* Word 0 - End */
+ } cn88xxp1;
+ struct bdk_pccpf_xxx_bar2l_cn9
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t bar : 32; /**< [ 31: 0](RO) Always zero. Enhanced allocation used instead of BARs. */
+#else /* Word 0 - Little Endian */
+ uint32_t bar : 32; /**< [ 31: 0](RO) Always zero. Enhanced allocation used instead of BARs. */
+#endif /* Word 0 - End */
+ } cn9;
+ struct bdk_pccpf_xxx_bar2l_cn81xx
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t lbab : 16; /**< [ 31: 16](R/W/H) Lower bits of the BAR 2 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__pfbar2_rbsz and tie__pfbar2_offset. */
+ uint32_t reserved_4_15 : 12;
+ uint32_t pf : 1; /**< [ 3: 3](RO) Prefetchable. */
+ uint32_t typ : 2; /**< [ 2: 1](RO/H) BAR type. 0x0 if not implemented or PCCPF_XXX_VSEC_SCTL[EA] is set, else 0x2:
+ 0x0 = 32-bit BAR, or BAR not present.
+ 0x2 = 64-bit BAR. */
+ uint32_t mspc : 1; /**< [ 0: 0](RO) Memory space indicator.
+ 0 = BAR is a memory BAR.
+ 1 = BAR is an I/O BAR. */
+#else /* Word 0 - Little Endian */
+ uint32_t mspc : 1; /**< [ 0: 0](RO) Memory space indicator.
+ 0 = BAR is a memory BAR.
+ 1 = BAR is an I/O BAR. */
+ uint32_t typ : 2; /**< [ 2: 1](RO/H) BAR type. 0x0 if not implemented or PCCPF_XXX_VSEC_SCTL[EA] is set, else 0x2:
+ 0x0 = 32-bit BAR, or BAR not present.
+ 0x2 = 64-bit BAR. */
+ uint32_t pf : 1; /**< [ 3: 3](RO) Prefetchable. */
+ uint32_t reserved_4_15 : 12;
+ uint32_t lbab : 16; /**< [ 31: 16](R/W/H) Lower bits of the BAR 2 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__pfbar2_rbsz and tie__pfbar2_offset. */
+#endif /* Word 0 - End */
+ } cn81xx;
+ /* struct bdk_pccpf_xxx_bar2l_cn81xx cn83xx; */
+ /* struct bdk_pccpf_xxx_bar2l_cn81xx cn88xxp2; */
+};
+typedef union bdk_pccpf_xxx_bar2l bdk_pccpf_xxx_bar2l_t;
+
+#define BDK_PCCPF_XXX_BAR2L BDK_PCCPF_XXX_BAR2L_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_BAR2L_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_BAR2L_FUNC(void)
+{
+ return 0x18;
+}
+
+#define typedef_BDK_PCCPF_XXX_BAR2L bdk_pccpf_xxx_bar2l_t
+#define bustype_BDK_PCCPF_XXX_BAR2L BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_BAR2L "PCCPF_XXX_BAR2L"
+#define busnum_BDK_PCCPF_XXX_BAR2L 0
+#define arguments_BDK_PCCPF_XXX_BAR2L -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_bar2u
+ *
+ * PCC PF Base Address 2 Upper Register
+ */
+union bdk_pccpf_xxx_bar2u
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_bar2u_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_0_31 : 32;
+#else /* Word 0 - Little Endian */
+ uint32_t reserved_0_31 : 32;
+#endif /* Word 0 - End */
+ } s;
+ struct bdk_pccpf_xxx_bar2u_cn8
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t ubab : 32; /**< [ 31: 0](R/W/H) Contains the upper 32 bits of the BAR 2 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__pfbar2_rbsz and tie__pfbar2_offset. */
+#else /* Word 0 - Little Endian */
+ uint32_t ubab : 32; /**< [ 31: 0](R/W/H) Contains the upper 32 bits of the BAR 2 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__pfbar2_rbsz and tie__pfbar2_offset. */
+#endif /* Word 0 - End */
+ } cn8;
+ struct bdk_pccpf_xxx_bar2u_cn9
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t bar : 32; /**< [ 31: 0](RO) Always zero. Enhanced allocation used instead of BARs. */
+#else /* Word 0 - Little Endian */
+ uint32_t bar : 32; /**< [ 31: 0](RO) Always zero. Enhanced allocation used instead of BARs. */
+#endif /* Word 0 - End */
+ } cn9;
+};
+typedef union bdk_pccpf_xxx_bar2u bdk_pccpf_xxx_bar2u_t;
+
+#define BDK_PCCPF_XXX_BAR2U BDK_PCCPF_XXX_BAR2U_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_BAR2U_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_BAR2U_FUNC(void)
+{
+ return 0x1c;
+}
+
+#define typedef_BDK_PCCPF_XXX_BAR2U bdk_pccpf_xxx_bar2u_t
+#define bustype_BDK_PCCPF_XXX_BAR2U BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_BAR2U "PCCPF_XXX_BAR2U"
+#define busnum_BDK_PCCPF_XXX_BAR2U 0
+#define arguments_BDK_PCCPF_XXX_BAR2U -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_bar4l
+ *
+ * PCC PF Base Address 4 Lower Register
+ */
+union bdk_pccpf_xxx_bar4l
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_bar4l_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_0_31 : 32;
+#else /* Word 0 - Little Endian */
+ uint32_t reserved_0_31 : 32;
+#endif /* Word 0 - End */
+ } s;
+ struct bdk_pccpf_xxx_bar4l_cn88xxp1
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t lbab : 16; /**< [ 31: 16](R/W/H) Lower bits of the BAR 4 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__pfbar4_rbsz and tie__pfbar4_offset. */
+ uint32_t reserved_4_15 : 12;
+ uint32_t pf : 1; /**< [ 3: 3](RO) Prefetchable. */
+ uint32_t typ : 2; /**< [ 2: 1](RO) BAR type. 0x0 if not implemented, else 0x2:
+ 0x0 = 32-bit BAR, or BAR not present.
+ 0x2 = 64-bit BAR. */
+ uint32_t mspc : 1; /**< [ 0: 0](RO) Memory space indicator.
+ 0 = BAR is a memory BAR.
+ 1 = BAR is an I/O BAR. */
+#else /* Word 0 - Little Endian */
+ uint32_t mspc : 1; /**< [ 0: 0](RO) Memory space indicator.
+ 0 = BAR is a memory BAR.
+ 1 = BAR is an I/O BAR. */
+ uint32_t typ : 2; /**< [ 2: 1](RO) BAR type. 0x0 if not implemented, else 0x2:
+ 0x0 = 32-bit BAR, or BAR not present.
+ 0x2 = 64-bit BAR. */
+ uint32_t pf : 1; /**< [ 3: 3](RO) Prefetchable. */
+ uint32_t reserved_4_15 : 12;
+ uint32_t lbab : 16; /**< [ 31: 16](R/W/H) Lower bits of the BAR 4 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__pfbar4_rbsz and tie__pfbar4_offset. */
+#endif /* Word 0 - End */
+ } cn88xxp1;
+ struct bdk_pccpf_xxx_bar4l_cn9
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t bar : 32; /**< [ 31: 0](RO) Always zero. Enhanced allocation used instead of BARs. */
+#else /* Word 0 - Little Endian */
+ uint32_t bar : 32; /**< [ 31: 0](RO) Always zero. Enhanced allocation used instead of BARs. */
+#endif /* Word 0 - End */
+ } cn9;
+ struct bdk_pccpf_xxx_bar4l_cn81xx
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t lbab : 16; /**< [ 31: 16](R/W/H) Lower bits of the BAR 4 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__pfbar4_rbsz and tie__pfbar4_offset. */
+ uint32_t reserved_4_15 : 12;
+ uint32_t pf : 1; /**< [ 3: 3](RO) Prefetchable. */
+ uint32_t typ : 2; /**< [ 2: 1](RO/H) BAR type. 0x0 if not implemented or PCCPF_XXX_VSEC_SCTL[EA] is set, else 0x2:
+ 0x0 = 32-bit BAR, or BAR not present.
+ 0x2 = 64-bit BAR. */
+ uint32_t mspc : 1; /**< [ 0: 0](RO) Memory space indicator.
+ 0 = BAR is a memory BAR.
+ 1 = BAR is an I/O BAR. */
+#else /* Word 0 - Little Endian */
+ uint32_t mspc : 1; /**< [ 0: 0](RO) Memory space indicator.
+ 0 = BAR is a memory BAR.
+ 1 = BAR is an I/O BAR. */
+ uint32_t typ : 2; /**< [ 2: 1](RO/H) BAR type. 0x0 if not implemented or PCCPF_XXX_VSEC_SCTL[EA] is set, else 0x2:
+ 0x0 = 32-bit BAR, or BAR not present.
+ 0x2 = 64-bit BAR. */
+ uint32_t pf : 1; /**< [ 3: 3](RO) Prefetchable. */
+ uint32_t reserved_4_15 : 12;
+ uint32_t lbab : 16; /**< [ 31: 16](R/W/H) Lower bits of the BAR 4 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__pfbar4_rbsz and tie__pfbar4_offset. */
+#endif /* Word 0 - End */
+ } cn81xx;
+ /* struct bdk_pccpf_xxx_bar4l_cn81xx cn83xx; */
+ /* struct bdk_pccpf_xxx_bar4l_cn81xx cn88xxp2; */
+};
+typedef union bdk_pccpf_xxx_bar4l bdk_pccpf_xxx_bar4l_t;
+
+#define BDK_PCCPF_XXX_BAR4L BDK_PCCPF_XXX_BAR4L_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_BAR4L_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_BAR4L_FUNC(void)
+{
+ return 0x20;
+}
+
+#define typedef_BDK_PCCPF_XXX_BAR4L bdk_pccpf_xxx_bar4l_t
+#define bustype_BDK_PCCPF_XXX_BAR4L BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_BAR4L "PCCPF_XXX_BAR4L"
+#define busnum_BDK_PCCPF_XXX_BAR4L 0
+#define arguments_BDK_PCCPF_XXX_BAR4L -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_bar4u
+ *
+ * PCC PF Base Address 4 Upper Register
+ */
+union bdk_pccpf_xxx_bar4u
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_bar4u_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_0_31 : 32;
+#else /* Word 0 - Little Endian */
+ uint32_t reserved_0_31 : 32;
+#endif /* Word 0 - End */
+ } s;
+ struct bdk_pccpf_xxx_bar4u_cn8
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t ubab : 32; /**< [ 31: 0](R/W/H) Contains the upper 32 bits of the BAR 4 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__pfbar4_rbsz and tie__pfbar4_offset. */
+#else /* Word 0 - Little Endian */
+ uint32_t ubab : 32; /**< [ 31: 0](R/W/H) Contains the upper 32 bits of the BAR 4 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__pfbar4_rbsz and tie__pfbar4_offset. */
+#endif /* Word 0 - End */
+ } cn8;
+ struct bdk_pccpf_xxx_bar4u_cn9
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t bar : 32; /**< [ 31: 0](RO) Always zero. Enhanced allocation used instead of BARs. */
+#else /* Word 0 - Little Endian */
+ uint32_t bar : 32; /**< [ 31: 0](RO) Always zero. Enhanced allocation used instead of BARs. */
+#endif /* Word 0 - End */
+ } cn9;
+};
+typedef union bdk_pccpf_xxx_bar4u bdk_pccpf_xxx_bar4u_t;
+
+#define BDK_PCCPF_XXX_BAR4U BDK_PCCPF_XXX_BAR4U_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_BAR4U_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_BAR4U_FUNC(void)
+{
+ return 0x24;
+}
+
+#define typedef_BDK_PCCPF_XXX_BAR4U bdk_pccpf_xxx_bar4u_t
+#define bustype_BDK_PCCPF_XXX_BAR4U BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_BAR4U "PCCPF_XXX_BAR4U"
+#define busnum_BDK_PCCPF_XXX_BAR4U 0
+#define arguments_BDK_PCCPF_XXX_BAR4U -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_cap_ptr
+ *
+ * PCC PF Capability Pointer Register
+ */
+union bdk_pccpf_xxx_cap_ptr
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_cap_ptr_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_8_31 : 24;
+ uint32_t cp : 8; /**< [ 7: 0](RO) First capability pointer. Points to PCCPF_XXX_E_CAP_HDR. */
+#else /* Word 0 - Little Endian */
+ uint32_t cp : 8; /**< [ 7: 0](RO) First capability pointer. Points to PCCPF_XXX_E_CAP_HDR. */
+ uint32_t reserved_8_31 : 24;
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_cap_ptr_s cn; */
+};
+typedef union bdk_pccpf_xxx_cap_ptr bdk_pccpf_xxx_cap_ptr_t;
+
+#define BDK_PCCPF_XXX_CAP_PTR BDK_PCCPF_XXX_CAP_PTR_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_CAP_PTR_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_CAP_PTR_FUNC(void)
+{
+ return 0x34;
+}
+
+#define typedef_BDK_PCCPF_XXX_CAP_PTR bdk_pccpf_xxx_cap_ptr_t
+#define bustype_BDK_PCCPF_XXX_CAP_PTR BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_CAP_PTR "PCCPF_XXX_CAP_PTR"
+#define busnum_BDK_PCCPF_XXX_CAP_PTR 0
+#define arguments_BDK_PCCPF_XXX_CAP_PTR -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_clsize
+ *
+ * PCC PF Cache Line Size Register
+ */
+union bdk_pccpf_xxx_clsize
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_clsize_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t bist : 8; /**< [ 31: 24](RO) BIST. */
+ uint32_t hdrtype : 8; /**< [ 23: 16](RO) Header type. For RSL, 0x80 to indicate a multifunction device, else 0x0. Per the SR-IOV
+ specification, VFs are not indicated as multifunction devices. */
+ uint32_t lattim : 8; /**< [ 15: 8](RO) Latency timer. */
+ uint32_t clsize : 8; /**< [ 7: 0](RO) Cacheline size. */
+#else /* Word 0 - Little Endian */
+ uint32_t clsize : 8; /**< [ 7: 0](RO) Cacheline size. */
+ uint32_t lattim : 8; /**< [ 15: 8](RO) Latency timer. */
+ uint32_t hdrtype : 8; /**< [ 23: 16](RO) Header type. For RSL, 0x80 to indicate a multifunction device, else 0x0. Per the SR-IOV
+ specification, VFs are not indicated as multifunction devices. */
+ uint32_t bist : 8; /**< [ 31: 24](RO) BIST. */
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_clsize_s cn; */
+};
+typedef union bdk_pccpf_xxx_clsize bdk_pccpf_xxx_clsize_t;
+
+#define BDK_PCCPF_XXX_CLSIZE BDK_PCCPF_XXX_CLSIZE_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_CLSIZE_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_CLSIZE_FUNC(void)
+{
+ return 0xc;
+}
+
+#define typedef_BDK_PCCPF_XXX_CLSIZE bdk_pccpf_xxx_clsize_t
+#define bustype_BDK_PCCPF_XXX_CLSIZE BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_CLSIZE "PCCPF_XXX_CLSIZE"
+#define busnum_BDK_PCCPF_XXX_CLSIZE 0
+#define arguments_BDK_PCCPF_XXX_CLSIZE -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_cmd
+ *
+ * PCC PF Command/Status Register
+ * This register is reset on a block domain reset or PF function level reset.
+ */
+union bdk_pccpf_xxx_cmd
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_cmd_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_21_31 : 11;
+ uint32_t cl : 1; /**< [ 20: 20](RO) Capabilities list. Indicates presence of an extended capability item. */
+ uint32_t reserved_3_19 : 17;
+ uint32_t me : 1; /**< [ 2: 2](RO) Master enable.
+ Internal:
+ For simplicity always one; we do not disable NCB transactions. */
+ uint32_t msae : 1; /**< [ 1: 1](RO) Memory space access enable.
+ Internal:
+ NCB/RSL always decoded; have hardcoded BARs. */
+ uint32_t reserved_0 : 1;
+#else /* Word 0 - Little Endian */
+ uint32_t reserved_0 : 1;
+ uint32_t msae : 1; /**< [ 1: 1](RO) Memory space access enable.
+ Internal:
+ NCB/RSL always decoded; have hardcoded BARs. */
+ uint32_t me : 1; /**< [ 2: 2](RO) Master enable.
+ Internal:
+ For simplicity always one; we do not disable NCB transactions. */
+ uint32_t reserved_3_19 : 17;
+ uint32_t cl : 1; /**< [ 20: 20](RO) Capabilities list. Indicates presence of an extended capability item. */
+ uint32_t reserved_21_31 : 11;
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_cmd_s cn8; */
+ struct bdk_pccpf_xxx_cmd_cn9
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_21_31 : 11;
+ uint32_t cl : 1; /**< [ 20: 20](RO) Capabilities list. Indicates presence of an extended capability item. */
+ uint32_t reserved_3_19 : 17;
+ uint32_t me : 1; /**< [ 2: 2](R/W) Bus master enable. If set, function may initiate upstream DMA or MSI-X
+ transactions.
+
+ If PCCPF_XXX_E_DEV_CAP[FLR] is read-only zero, always set and writes have no
+ effect. Resets to zero and writable otherwise.
+
+ Internal:
+ Drives pcc__blk_masterena if block's CSR file has pcc_flr="True"
+ attribute. Function must not initiate NCBI DMA requests when
+ pcc__blk_masterena=0. In addition, PCC will not generate GIB (MSI-X)
+ transactions when this bit is clear. */
+ uint32_t msae : 1; /**< [ 1: 1](RO) Memory space access enable.
+ Internal:
+ NCB/RSL always decoded; have hardcoded BARs. */
+ uint32_t reserved_0 : 1;
+#else /* Word 0 - Little Endian */
+ uint32_t reserved_0 : 1;
+ uint32_t msae : 1; /**< [ 1: 1](RO) Memory space access enable.
+ Internal:
+ NCB/RSL always decoded; have hardcoded BARs. */
+ uint32_t me : 1; /**< [ 2: 2](R/W) Bus master enable. If set, function may initiate upstream DMA or MSI-X
+ transactions.
+
+ If PCCPF_XXX_E_DEV_CAP[FLR] is read-only zero, always set and writes have no
+ effect. Resets to zero and writable otherwise.
+
+ Internal:
+ Drives pcc__blk_masterena if block's CSR file has pcc_flr="True"
+ attribute. Function must not initiate NCBI DMA requests when
+ pcc__blk_masterena=0. In addition, PCC will not generate GIB (MSI-X)
+ transactions when this bit is clear. */
+ uint32_t reserved_3_19 : 17;
+ uint32_t cl : 1; /**< [ 20: 20](RO) Capabilities list. Indicates presence of an extended capability item. */
+ uint32_t reserved_21_31 : 11;
+#endif /* Word 0 - End */
+ } cn9;
+};
+typedef union bdk_pccpf_xxx_cmd bdk_pccpf_xxx_cmd_t;
+
+#define BDK_PCCPF_XXX_CMD BDK_PCCPF_XXX_CMD_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_CMD_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_CMD_FUNC(void)
+{
+ return 4;
+}
+
+#define typedef_BDK_PCCPF_XXX_CMD bdk_pccpf_xxx_cmd_t
+#define bustype_BDK_PCCPF_XXX_CMD BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_CMD "PCCPF_XXX_CMD"
+#define busnum_BDK_PCCPF_XXX_CMD 0
+#define arguments_BDK_PCCPF_XXX_CMD -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_e_cap_hdr
+ *
+ * PCC PF PCI Express Capabilities Register
+ * This register is the header of the 64-byte PCIe capability header.
+ */
+union bdk_pccpf_xxx_e_cap_hdr
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_e_cap_hdr_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_24_31 : 8;
+ uint32_t dpt : 4; /**< [ 23: 20](RO) Device/port type. Indicates PCIe endpoint (0x0) for ARI devices (when bus is nonzero) and
+ integrated endpoint (0x9) otherwise. */
+ uint32_t pciecv : 4; /**< [ 19: 16](RO) PCIe capability version. */
+ uint32_t ncp : 8; /**< [ 15: 8](RO) Next capability pointer. If MSI-X is supported, points to
+ PCCPF_XXX_MSIX_CAP_HDR, else 0x0. */
+ uint32_t pcieid : 8; /**< [ 7: 0](RO) PCIe capability ID. */
+#else /* Word 0 - Little Endian */
+ uint32_t pcieid : 8; /**< [ 7: 0](RO) PCIe capability ID. */
+ uint32_t ncp : 8; /**< [ 15: 8](RO) Next capability pointer. If MSI-X is supported, points to
+ PCCPF_XXX_MSIX_CAP_HDR, else 0x0. */
+ uint32_t pciecv : 4; /**< [ 19: 16](RO) PCIe capability version. */
+ uint32_t dpt : 4; /**< [ 23: 20](RO) Device/port type. Indicates PCIe endpoint (0x0) for ARI devices (when bus is nonzero) and
+ integrated endpoint (0x9) otherwise. */
+ uint32_t reserved_24_31 : 8;
+#endif /* Word 0 - End */
+ } s;
+ struct bdk_pccpf_xxx_e_cap_hdr_cn88xxp1
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_20_31 : 12;
+ uint32_t pciecv : 4; /**< [ 19: 16](RO) PCIe capability version. */
+ uint32_t ncp : 8; /**< [ 15: 8](RO) Next capability pointer. If MSI-X is supported, points to
+ PCCPF_XXX_MSIX_CAP_HDR, else 0x0. */
+ uint32_t pcieid : 8; /**< [ 7: 0](RO) PCIe capability ID. */
+#else /* Word 0 - Little Endian */
+ uint32_t pcieid : 8; /**< [ 7: 0](RO) PCIe capability ID. */
+ uint32_t ncp : 8; /**< [ 15: 8](RO) Next capability pointer. If MSI-X is supported, points to
+ PCCPF_XXX_MSIX_CAP_HDR, else 0x0. */
+ uint32_t pciecv : 4; /**< [ 19: 16](RO) PCIe capability version. */
+ uint32_t reserved_20_31 : 12;
+#endif /* Word 0 - End */
+ } cn88xxp1;
+ struct bdk_pccpf_xxx_e_cap_hdr_cn9
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_24_31 : 8;
+ uint32_t dpt : 4; /**< [ 23: 20](RO) Device/port type. Indicates PCIe endpoint (0x0) for ARI devices (when bus is nonzero) and
+ integrated endpoint (0x9) otherwise. */
+ uint32_t pciecv : 4; /**< [ 19: 16](RO) PCIe capability version. */
+ uint32_t ncp : 8; /**< [ 15: 8](RO/H) Next capability pointer. If MSI-X is supported, points to
+ PCCPF_XXX_MSIX_CAP_HDR, else points to PCCPF_XXX_EA_CAP_HDR. */
+ uint32_t pcieid : 8; /**< [ 7: 0](RO) PCIe capability ID. */
+#else /* Word 0 - Little Endian */
+ uint32_t pcieid : 8; /**< [ 7: 0](RO) PCIe capability ID. */
+ uint32_t ncp : 8; /**< [ 15: 8](RO/H) Next capability pointer. If MSI-X is supported, points to
+ PCCPF_XXX_MSIX_CAP_HDR, else points to PCCPF_XXX_EA_CAP_HDR. */
+ uint32_t pciecv : 4; /**< [ 19: 16](RO) PCIe capability version. */
+ uint32_t dpt : 4; /**< [ 23: 20](RO) Device/port type. Indicates PCIe endpoint (0x0) for ARI devices (when bus is nonzero) and
+ integrated endpoint (0x9) otherwise. */
+ uint32_t reserved_24_31 : 8;
+#endif /* Word 0 - End */
+ } cn9;
+ struct bdk_pccpf_xxx_e_cap_hdr_cn81xx
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_24_31 : 8;
+ uint32_t dpt : 4; /**< [ 23: 20](RO) Device/port type. Indicates PCIe endpoint (0x0) for ARI devices (when bus is nonzero) and
+ integrated endpoint (0x9) otherwise. */
+ uint32_t pciecv : 4; /**< [ 19: 16](RO) PCIe capability version. */
+ uint32_t ncp : 8; /**< [ 15: 8](RO/H) Next capability pointer. If MSI-X is supported, points to
+ PCCPF_XXX_MSIX_CAP_HDR, else if PCCPF_XXX_VSEC_SCTL[EA] is set points to
+ PCCPF_XXX_EA_CAP_HDR, else 0x0. */
+ uint32_t pcieid : 8; /**< [ 7: 0](RO) PCIe capability ID. */
+#else /* Word 0 - Little Endian */
+ uint32_t pcieid : 8; /**< [ 7: 0](RO) PCIe capability ID. */
+ uint32_t ncp : 8; /**< [ 15: 8](RO/H) Next capability pointer. If MSI-X is supported, points to
+ PCCPF_XXX_MSIX_CAP_HDR, else if PCCPF_XXX_VSEC_SCTL[EA] is set points to
+ PCCPF_XXX_EA_CAP_HDR, else 0x0. */
+ uint32_t pciecv : 4; /**< [ 19: 16](RO) PCIe capability version. */
+ uint32_t dpt : 4; /**< [ 23: 20](RO) Device/port type. Indicates PCIe endpoint (0x0) for ARI devices (when bus is nonzero) and
+ integrated endpoint (0x9) otherwise. */
+ uint32_t reserved_24_31 : 8;
+#endif /* Word 0 - End */
+ } cn81xx;
+ /* struct bdk_pccpf_xxx_e_cap_hdr_cn81xx cn83xx; */
+ struct bdk_pccpf_xxx_e_cap_hdr_cn88xxp2
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_24_31 : 8;
+ uint32_t dpt : 4; /**< [ 23: 20](RO) Reserved. */
+ uint32_t pciecv : 4; /**< [ 19: 16](RO) PCIe capability version. */
+ uint32_t ncp : 8; /**< [ 15: 8](RO/H) Next capability pointer. If MSI-X is supported, points to
+ PCCPF_XXX_MSIX_CAP_HDR, else if PCCPF_XXX_VSEC_SCTL[EA] is set points to
+ PCCPF_XXX_EA_CAP_HDR, else 0x0. */
+ uint32_t pcieid : 8; /**< [ 7: 0](RO) PCIe capability ID. */
+#else /* Word 0 - Little Endian */
+ uint32_t pcieid : 8; /**< [ 7: 0](RO) PCIe capability ID. */
+ uint32_t ncp : 8; /**< [ 15: 8](RO/H) Next capability pointer. If MSI-X is supported, points to
+ PCCPF_XXX_MSIX_CAP_HDR, else if PCCPF_XXX_VSEC_SCTL[EA] is set points to
+ PCCPF_XXX_EA_CAP_HDR, else 0x0. */
+ uint32_t pciecv : 4; /**< [ 19: 16](RO) PCIe capability version. */
+ uint32_t dpt : 4; /**< [ 23: 20](RO) Reserved. */
+ uint32_t reserved_24_31 : 8;
+#endif /* Word 0 - End */
+ } cn88xxp2;
+};
+typedef union bdk_pccpf_xxx_e_cap_hdr bdk_pccpf_xxx_e_cap_hdr_t;
+
+#define BDK_PCCPF_XXX_E_CAP_HDR BDK_PCCPF_XXX_E_CAP_HDR_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_E_CAP_HDR_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_E_CAP_HDR_FUNC(void)
+{
+ if (CAVIUM_IS_MODEL(CAVIUM_CN81XX))
+ return 0x40;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN83XX))
+ return 0x40;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN88XX_PASS1_X))
+ return 0x70;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN88XX_PASS2_X))
+ return 0x40;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX))
+ return 0x40;
+ __bdk_csr_fatal("PCCPF_XXX_E_CAP_HDR", 0, 0, 0, 0, 0);
+}
+
+#define typedef_BDK_PCCPF_XXX_E_CAP_HDR bdk_pccpf_xxx_e_cap_hdr_t
+#define bustype_BDK_PCCPF_XXX_E_CAP_HDR BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_E_CAP_HDR "PCCPF_XXX_E_CAP_HDR"
+#define busnum_BDK_PCCPF_XXX_E_CAP_HDR 0
+#define arguments_BDK_PCCPF_XXX_E_CAP_HDR -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_e_dev_cap
+ *
+ * PCC PF PCI Express Device Capabilities Register
+ */
+union bdk_pccpf_xxx_e_dev_cap
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_e_dev_cap_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_29_31 : 3;
+ uint32_t flr : 1; /**< [ 28: 28](RO) Function level reset capability. If set, PCCPF_XXX_E_DEV_CTL[BCR_FLR] is
+ implemented.
+
+ In CNXXX:
+ 0 = PCCPF_XXX_E_DEV_CTL[BCR_FLR] is ignored, PCCPF_XXX_E_DEV_CTL[TRPEND] is
+ always zero, PCCPF_XXX_CMD[ME] is always set, and PCCPF_XXX_SRIOV_CTL[VFE] is
+ always set (for SR-IOV functions).
+
+ 1 = PCCPF_XXX_E_DEV_CTL[BCR_FLR], PCCPF_XXX_E_DEV_CTL[TRPEND],
+ PCCPF_XXX_CMD[ME], and PCCPF_XXX_SRIOV_CTL[VFE] (if applicable) are
+ functional.
+
+ Internal:
+ Returns 1 if block's CSR file has pcc_flr="True" attribute. */
+ uint32_t reserved_16_27 : 12;
+ uint32_t rber : 1; /**< [ 15: 15](RO) Role-based error reporting. Required to be set by PCIe3.1. */
+ uint32_t reserved_0_14 : 15;
+#else /* Word 0 - Little Endian */
+ uint32_t reserved_0_14 : 15;
+ uint32_t rber : 1; /**< [ 15: 15](RO) Role-based error reporting. Required to be set by PCIe3.1. */
+ uint32_t reserved_16_27 : 12;
+ uint32_t flr : 1; /**< [ 28: 28](RO) Function level reset capability. If set, PCCPF_XXX_E_DEV_CTL[BCR_FLR] is
+ implemented.
+
+ In CNXXX:
+ 0 = PCCPF_XXX_E_DEV_CTL[BCR_FLR] is ignored, PCCPF_XXX_E_DEV_CTL[TRPEND] is
+ always zero, PCCPF_XXX_CMD[ME] is always set, and PCCPF_XXX_SRIOV_CTL[VFE] is
+ always set (for SR-IOV functions).
+
+ 1 = PCCPF_XXX_E_DEV_CTL[BCR_FLR], PCCPF_XXX_E_DEV_CTL[TRPEND],
+ PCCPF_XXX_CMD[ME], and PCCPF_XXX_SRIOV_CTL[VFE] (if applicable) are
+ functional.
+
+ Internal:
+ Returns 1 if block's CSR file has pcc_flr="True" attribute. */
+ uint32_t reserved_29_31 : 3;
+#endif /* Word 0 - End */
+ } s;
+ struct bdk_pccpf_xxx_e_dev_cap_cn8
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_16_31 : 16;
+ uint32_t rber : 1; /**< [ 15: 15](RO) Role-based error reporting. Required to be set by PCIe3.1. */
+ uint32_t reserved_0_14 : 15;
+#else /* Word 0 - Little Endian */
+ uint32_t reserved_0_14 : 15;
+ uint32_t rber : 1; /**< [ 15: 15](RO) Role-based error reporting. Required to be set by PCIe3.1. */
+ uint32_t reserved_16_31 : 16;
+#endif /* Word 0 - End */
+ } cn8;
+ /* struct bdk_pccpf_xxx_e_dev_cap_s cn9; */
+};
+typedef union bdk_pccpf_xxx_e_dev_cap bdk_pccpf_xxx_e_dev_cap_t;
+
+#define BDK_PCCPF_XXX_E_DEV_CAP BDK_PCCPF_XXX_E_DEV_CAP_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_E_DEV_CAP_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_E_DEV_CAP_FUNC(void)
+{
+ if (CAVIUM_IS_MODEL(CAVIUM_CN81XX))
+ return 0x44;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN83XX))
+ return 0x44;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX))
+ return 0x44;
+ __bdk_csr_fatal("PCCPF_XXX_E_DEV_CAP", 0, 0, 0, 0, 0);
+}
+
+#define typedef_BDK_PCCPF_XXX_E_DEV_CAP bdk_pccpf_xxx_e_dev_cap_t
+#define bustype_BDK_PCCPF_XXX_E_DEV_CAP BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_E_DEV_CAP "PCCPF_XXX_E_DEV_CAP"
+#define busnum_BDK_PCCPF_XXX_E_DEV_CAP 0
+#define arguments_BDK_PCCPF_XXX_E_DEV_CAP -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_e_dev_ctl
+ *
+ * PCC PF PCI Express Device Control and Status Register
+ * This register is reset on a block domain reset or PF function level reset.
+ */
+union bdk_pccpf_xxx_e_dev_ctl
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_e_dev_ctl_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_22_31 : 10;
+ uint32_t trpend : 1; /**< [ 21: 21](RO/H) Transactions pending. If PCCPF_XXX_E_DEV_CAP[FLR] is clear, always 0. */
+ uint32_t reserved_20 : 1;
+ uint32_t urd : 1; /**< [ 19: 19](RO) Unsupported request detected. Always zero. */
+ uint32_t fed : 1; /**< [ 18: 18](R/W1C/H) Fatal error detected. Set when any bit in PCCPF_XXX_AER_UNCOR_STATUS transitions
+ to one while the corresponding bit in PCCPF_XXX_AER_UNCOR_SEVER is set. */
+ uint32_t nfed : 1; /**< [ 17: 17](R/W1C/H) Non-fatal error detected. Set when any bit in PCCPF_XXX_AER_UNCOR_STATUS
+ transitions to one while the corresponding bit in PCCPF_XXX_AER_UNCOR_SEVER is
+ clear. */
+ uint32_t ced : 1; /**< [ 16: 16](R/W1C/H) Correctable error detected. Set when any bit in PCCPF_XXX_AER_COR_STATUS transitions to one. */
+ uint32_t bcr_flr : 1; /**< [ 15: 15](R/W1S/H) Initiate function level reset. Writing a one to this bit initiates function level
+ reset if PCCPF_XXX_E_DEV_CAP[FLR] is set, else writes have no effect. This is a
+ self-clearing bit and always reads as zero. */
+ uint32_t reserved_4_14 : 11;
+ uint32_t urre : 1; /**< [ 3: 3](R/W) Unsupported request reporting enable. R/W for PCIe and software compatibility, not
+ used by hardware. */
+ uint32_t fere : 1; /**< [ 2: 2](R/W) Fatal error reporting enable. R/W for PCIe and software compatibility, not
+ used by hardware. */
+ uint32_t nfere : 1; /**< [ 1: 1](R/W) Nonfatal error reporting enable. R/W for PCIe and software compatibility, not
+ used by hardware. */
+ uint32_t cere : 1; /**< [ 0: 0](R/W) Correctable error reporting enable. R/W for PCIe and software compatibility, not
+ used by hardware. */
+#else /* Word 0 - Little Endian */
+ uint32_t cere : 1; /**< [ 0: 0](R/W) Correctable error reporting enable. R/W for PCIe and software compatibility, not
+ used by hardware. */
+ uint32_t nfere : 1; /**< [ 1: 1](R/W) Nonfatal error reporting enable. R/W for PCIe and software compatibility, not
+ used by hardware. */
+ uint32_t fere : 1; /**< [ 2: 2](R/W) Fatal error reporting enable. R/W for PCIe and software compatibility, not
+ used by hardware. */
+ uint32_t urre : 1; /**< [ 3: 3](R/W) Unsupported request reporting enable. R/W for PCIe and software compatibility, not
+ used by hardware. */
+ uint32_t reserved_4_14 : 11;
+ uint32_t bcr_flr : 1; /**< [ 15: 15](R/W1S/H) Initiate function level reset. Writing a one to this bit initiates function level
+ reset if PCCPF_XXX_E_DEV_CAP[FLR] is set, else writes have no effect. This is a
+ self-clearing bit and always reads as zero. */
+ uint32_t ced : 1; /**< [ 16: 16](R/W1C/H) Correctable error detected. Set when any bit in PCCPF_XXX_AER_COR_STATUS transitions to one. */
+ uint32_t nfed : 1; /**< [ 17: 17](R/W1C/H) Non-fatal error detected. Set when any bit in PCCPF_XXX_AER_UNCOR_STATUS
+ transitions to one while the corresponding bit in PCCPF_XXX_AER_UNCOR_SEVER is
+ clear. */
+ uint32_t fed : 1; /**< [ 18: 18](R/W1C/H) Fatal error detected. Set when any bit in PCCPF_XXX_AER_UNCOR_STATUS transitions
+ to one while the corresponding bit in PCCPF_XXX_AER_UNCOR_SEVER is set. */
+ uint32_t urd : 1; /**< [ 19: 19](RO) Unsupported request detected. Always zero. */
+ uint32_t reserved_20 : 1;
+ uint32_t trpend : 1; /**< [ 21: 21](RO/H) Transactions pending. If PCCPF_XXX_E_DEV_CAP[FLR] is clear, always 0. */
+ uint32_t reserved_22_31 : 10;
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_e_dev_ctl_s cn; */
+};
+typedef union bdk_pccpf_xxx_e_dev_ctl bdk_pccpf_xxx_e_dev_ctl_t;
+
+#define BDK_PCCPF_XXX_E_DEV_CTL BDK_PCCPF_XXX_E_DEV_CTL_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_E_DEV_CTL_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_E_DEV_CTL_FUNC(void)
+{
+ if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX))
+ return 0x48;
+ __bdk_csr_fatal("PCCPF_XXX_E_DEV_CTL", 0, 0, 0, 0, 0);
+}
+
+#define typedef_BDK_PCCPF_XXX_E_DEV_CTL bdk_pccpf_xxx_e_dev_ctl_t
+#define bustype_BDK_PCCPF_XXX_E_DEV_CTL BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_E_DEV_CTL "PCCPF_XXX_E_DEV_CTL"
+#define busnum_BDK_PCCPF_XXX_E_DEV_CTL 0
+#define arguments_BDK_PCCPF_XXX_E_DEV_CTL -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_ea_cap_hdr
+ *
+ * PCC PF PCI Enhanced Allocation Capabilities Register
+ * This register is the header of the variable-sized PCI enhanced allocation capability
+ * structure for type 0 devices.
+ */
+union bdk_pccpf_xxx_ea_cap_hdr
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_ea_cap_hdr_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_22_31 : 10;
+ uint32_t num_entries : 6; /**< [ 21: 16](RO/H) Number of enhanced entries:
+ 0x0 = No nonzero BARs.
+ 0x1 = 1 nonzero normal or SR-IOV BARs.
+ 0x2 = 2 nonzero normal or SR-IOV BARs.
+ 0x3 = 3 nonzero normal or SR-IOV BARs.
+ 0x4 = 4 nonzero normal or SR-IOV BARs.
+
+ CNXXXX never has more than four normal or SR-IOV BARs. */
+ uint32_t ncp : 8; /**< [ 15: 8](RO) Next capability pointer. No next capability. */
+ uint32_t pcieid : 8; /**< [ 7: 0](RO/H) Enhanced allocation capability ID. */
+#else /* Word 0 - Little Endian */
+ uint32_t pcieid : 8; /**< [ 7: 0](RO/H) Enhanced allocation capability ID. */
+ uint32_t ncp : 8; /**< [ 15: 8](RO) Next capability pointer. No next capability. */
+ uint32_t num_entries : 6; /**< [ 21: 16](RO/H) Number of enhanced entries:
+ 0x0 = No nonzero BARs.
+ 0x1 = 1 nonzero normal or SR-IOV BARs.
+ 0x2 = 2 nonzero normal or SR-IOV BARs.
+ 0x3 = 3 nonzero normal or SR-IOV BARs.
+ 0x4 = 4 nonzero normal or SR-IOV BARs.
+
+ CNXXXX never has more than four normal or SR-IOV BARs. */
+ uint32_t reserved_22_31 : 10;
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_ea_cap_hdr_s cn8; */
+ struct bdk_pccpf_xxx_ea_cap_hdr_cn9
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_22_31 : 10;
+ uint32_t num_entries : 6; /**< [ 21: 16](RO/H) Number of enhanced entries:
+ 0x0 = No nonzero BARs.
+ 0x1 = 1 nonzero normal or SR-IOV BARs.
+ 0x2 = 2 nonzero normal or SR-IOV BARs.
+ 0x3 = 3 nonzero normal or SR-IOV BARs.
+ 0x4 = 4 nonzero normal or SR-IOV BARs.
+
+ CNXXXX never has more than four normal or SR-IOV BARs. */
+ uint32_t ncp : 8; /**< [ 15: 8](RO) Next capability pointer. No next capability. */
+ uint32_t pcieid : 8; /**< [ 7: 0](RO) Enhanced allocation capability ID. */
+#else /* Word 0 - Little Endian */
+ uint32_t pcieid : 8; /**< [ 7: 0](RO) Enhanced allocation capability ID. */
+ uint32_t ncp : 8; /**< [ 15: 8](RO) Next capability pointer. No next capability. */
+ uint32_t num_entries : 6; /**< [ 21: 16](RO/H) Number of enhanced entries:
+ 0x0 = No nonzero BARs.
+ 0x1 = 1 nonzero normal or SR-IOV BARs.
+ 0x2 = 2 nonzero normal or SR-IOV BARs.
+ 0x3 = 3 nonzero normal or SR-IOV BARs.
+ 0x4 = 4 nonzero normal or SR-IOV BARs.
+
+ CNXXXX never has more than four normal or SR-IOV BARs. */
+ uint32_t reserved_22_31 : 10;
+#endif /* Word 0 - End */
+ } cn9;
+};
+typedef union bdk_pccpf_xxx_ea_cap_hdr bdk_pccpf_xxx_ea_cap_hdr_t;
+
+#define BDK_PCCPF_XXX_EA_CAP_HDR BDK_PCCPF_XXX_EA_CAP_HDR_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_EA_CAP_HDR_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_EA_CAP_HDR_FUNC(void)
+{
+ if (CAVIUM_IS_MODEL(CAVIUM_CN81XX))
+ return 0x98;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN83XX))
+ return 0x98;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN88XX_PASS2_X))
+ return 0x98;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX))
+ return 0x98;
+ __bdk_csr_fatal("PCCPF_XXX_EA_CAP_HDR", 0, 0, 0, 0, 0);
+}
+
+#define typedef_BDK_PCCPF_XXX_EA_CAP_HDR bdk_pccpf_xxx_ea_cap_hdr_t
+#define bustype_BDK_PCCPF_XXX_EA_CAP_HDR BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_EA_CAP_HDR "PCCPF_XXX_EA_CAP_HDR"
+#define busnum_BDK_PCCPF_XXX_EA_CAP_HDR 0
+#define arguments_BDK_PCCPF_XXX_EA_CAP_HDR -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_ea_entry#
+ *
+ * PCC PF PCI Enhanced Allocation Entry Registers
+ * These registers contain up to four sequential enhanced allocation entries. Each
+ * entry consists of five sequential 32-bit words described by PCC_EA_ENTRY_S.
+ */
+union bdk_pccpf_xxx_ea_entryx
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_ea_entryx_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t data : 32; /**< [ 31: 0](RO/H) Entry data. See PCC_EA_ENTRY_S. */
+#else /* Word 0 - Little Endian */
+ uint32_t data : 32; /**< [ 31: 0](RO/H) Entry data. See PCC_EA_ENTRY_S. */
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_ea_entryx_s cn; */
+};
+typedef union bdk_pccpf_xxx_ea_entryx bdk_pccpf_xxx_ea_entryx_t;
+
+static inline uint64_t BDK_PCCPF_XXX_EA_ENTRYX(unsigned long a) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_EA_ENTRYX(unsigned long a)
+{
+ if (CAVIUM_IS_MODEL(CAVIUM_CN81XX) && (a<=19))
+ return 0x9c + 4 * ((a) & 0x1f);
+ if (CAVIUM_IS_MODEL(CAVIUM_CN83XX) && (a<=24))
+ return 0x9c + 4 * ((a) & 0x1f);
+ if (CAVIUM_IS_MODEL(CAVIUM_CN88XX_PASS2_X) && (a<=19))
+ return 0x9c + 4 * ((a) & 0x1f);
+ if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX) && (a<=24))
+ return 0x9c + 4 * ((a) & 0x1f);
+ __bdk_csr_fatal("PCCPF_XXX_EA_ENTRYX", 1, a, 0, 0, 0);
+}
+
+#define typedef_BDK_PCCPF_XXX_EA_ENTRYX(a) bdk_pccpf_xxx_ea_entryx_t
+#define bustype_BDK_PCCPF_XXX_EA_ENTRYX(a) BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_EA_ENTRYX(a) "PCCPF_XXX_EA_ENTRYX"
+#define busnum_BDK_PCCPF_XXX_EA_ENTRYX(a) (a)
+#define arguments_BDK_PCCPF_XXX_EA_ENTRYX(a) (a),-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_id
+ *
+ * PCC PF Vendor and Device ID Register
+ * This register is the header of the 64-byte PCI type 0 configuration structure.
+ */
+union bdk_pccpf_xxx_id
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_id_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t devid : 16; /**< [ 31: 16](RO) Device ID. \<15:8\> is PCC_PROD_E::GEN. \<7:0\> enumerated by PCC_DEV_IDL_E.
+
+ Internal:
+ Unit
+ from PCC's tie__pfunitid. */
+ uint32_t vendid : 16; /**< [ 15: 0](RO) Cavium's vendor ID. Enumerated by PCC_VENDOR_E::CAVIUM. */
+#else /* Word 0 - Little Endian */
+ uint32_t vendid : 16; /**< [ 15: 0](RO) Cavium's vendor ID. Enumerated by PCC_VENDOR_E::CAVIUM. */
+ uint32_t devid : 16; /**< [ 31: 16](RO) Device ID. \<15:8\> is PCC_PROD_E::GEN. \<7:0\> enumerated by PCC_DEV_IDL_E.
+
+ Internal:
+ Unit
+ from PCC's tie__pfunitid. */
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_id_s cn8; */
+ struct bdk_pccpf_xxx_id_cn9
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t devid : 16; /**< [ 31: 16](RO/H) Device ID. \<15:8\> is PCC_PROD_E::GEN. \<7:0\> enumerated by PCC_DEV_IDL_E.
+
+ Internal:
+ Unit from PCC's tie__pfunitid. */
+ uint32_t vendid : 16; /**< [ 15: 0](RO) Cavium's vendor ID. Enumerated by PCC_VENDOR_E::CAVIUM. */
+#else /* Word 0 - Little Endian */
+ uint32_t vendid : 16; /**< [ 15: 0](RO) Cavium's vendor ID. Enumerated by PCC_VENDOR_E::CAVIUM. */
+ uint32_t devid : 16; /**< [ 31: 16](RO/H) Device ID. \<15:8\> is PCC_PROD_E::GEN. \<7:0\> enumerated by PCC_DEV_IDL_E.
+
+ Internal:
+ Unit from PCC's tie__pfunitid. */
+#endif /* Word 0 - End */
+ } cn9;
+};
+typedef union bdk_pccpf_xxx_id bdk_pccpf_xxx_id_t;
+
+#define BDK_PCCPF_XXX_ID BDK_PCCPF_XXX_ID_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_ID_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_ID_FUNC(void)
+{
+ return 0;
+}
+
+#define typedef_BDK_PCCPF_XXX_ID bdk_pccpf_xxx_id_t
+#define bustype_BDK_PCCPF_XXX_ID BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_ID "PCCPF_XXX_ID"
+#define busnum_BDK_PCCPF_XXX_ID 0
+#define arguments_BDK_PCCPF_XXX_ID -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_msix_cap_hdr
+ *
+ * PCC PF MSI-X Capability Header Register
+ * This register is the header of the 36-byte PCI MSI-X capability structure.
+ *
+ * This register is reset on a block domain reset or PF function level reset.
+ */
+union bdk_pccpf_xxx_msix_cap_hdr
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_msix_cap_hdr_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t msixen : 1; /**< [ 31: 31](R/W) MSI-X enable.
+ 0 = The MSI-X PBAs corresponding to this function are cleared. Interrupt messages
+ will not be issued.
+ 1 = Normal PBA and MSI-X delivery. */
+ uint32_t funm : 1; /**< [ 30: 30](R/W) Function mask.
+ 0 = Each vectors' mask bit determines whether the vector is masked or not.
+ 1 = All vectors associated with the function are masked, regardless of their respective
+ per-vector mask bits.
+
+ Setting or clearing FUNM has no effect on the state of the per-vector mask bits. */
+ uint32_t reserved_27_29 : 3;
+ uint32_t msixts : 11; /**< [ 26: 16](RO) MSI-X table size encoded as (table size - 1).
+ Internal:
+ From PCC's MSIX_PF_VECS parameter. */
+ uint32_t ncp : 8; /**< [ 15: 8](RO) Next capability pointer. */
+ uint32_t msixcid : 8; /**< [ 7: 0](RO) MSI-X capability ID. */
+#else /* Word 0 - Little Endian */
+ uint32_t msixcid : 8; /**< [ 7: 0](RO) MSI-X capability ID. */
+ uint32_t ncp : 8; /**< [ 15: 8](RO) Next capability pointer. */
+ uint32_t msixts : 11; /**< [ 26: 16](RO) MSI-X table size encoded as (table size - 1).
+ Internal:
+ From PCC's MSIX_PF_VECS parameter. */
+ uint32_t reserved_27_29 : 3;
+ uint32_t funm : 1; /**< [ 30: 30](R/W) Function mask.
+ 0 = Each vectors' mask bit determines whether the vector is masked or not.
+ 1 = All vectors associated with the function are masked, regardless of their respective
+ per-vector mask bits.
+
+ Setting or clearing FUNM has no effect on the state of the per-vector mask bits. */
+ uint32_t msixen : 1; /**< [ 31: 31](R/W) MSI-X enable.
+ 0 = The MSI-X PBAs corresponding to this function are cleared. Interrupt messages
+ will not be issued.
+ 1 = Normal PBA and MSI-X delivery. */
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_msix_cap_hdr_s cn88xxp1; */
+ struct bdk_pccpf_xxx_msix_cap_hdr_cn9
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t msixen : 1; /**< [ 31: 31](R/W) MSI-X enable.
+ 0 = The MSI-X PBAs corresponding to this function are cleared. Interrupt messages
+ will not be issued.
+ 1 = Normal PBA and MSI-X delivery. See also PCCPF_XXX_CMD[ME]. */
+ uint32_t funm : 1; /**< [ 30: 30](R/W) Function mask.
+ 0 = Each vectors' mask bit determines whether the vector is masked or not.
+ 1 = All vectors associated with the function are masked, regardless of their respective
+ per-vector mask bits.
+
+ Setting or clearing [FUNM] has no effect on the state of the per-vector mask bits. */
+ uint32_t reserved_27_29 : 3;
+ uint32_t msixts : 11; /**< [ 26: 16](RO/H) MSI-X table size encoded as (table size - 1).
+ Internal:
+ From PCC generated parameter. */
+ uint32_t ncp : 8; /**< [ 15: 8](RO) Next capability pointer. Points to PCCPF_XXX_EA_CAP_HDR. */
+ uint32_t msixcid : 8; /**< [ 7: 0](RO) MSI-X Capability ID. */
+#else /* Word 0 - Little Endian */
+ uint32_t msixcid : 8; /**< [ 7: 0](RO) MSI-X Capability ID. */
+ uint32_t ncp : 8; /**< [ 15: 8](RO) Next capability pointer. Points to PCCPF_XXX_EA_CAP_HDR. */
+ uint32_t msixts : 11; /**< [ 26: 16](RO/H) MSI-X table size encoded as (table size - 1).
+ Internal:
+ From PCC generated parameter. */
+ uint32_t reserved_27_29 : 3;
+ uint32_t funm : 1; /**< [ 30: 30](R/W) Function mask.
+ 0 = Each vectors' mask bit determines whether the vector is masked or not.
+ 1 = All vectors associated with the function are masked, regardless of their respective
+ per-vector mask bits.
+
+ Setting or clearing [FUNM] has no effect on the state of the per-vector mask bits. */
+ uint32_t msixen : 1; /**< [ 31: 31](R/W) MSI-X enable.
+ 0 = The MSI-X PBAs corresponding to this function are cleared. Interrupt messages
+ will not be issued.
+ 1 = Normal PBA and MSI-X delivery. See also PCCPF_XXX_CMD[ME]. */
+#endif /* Word 0 - End */
+ } cn9;
+ struct bdk_pccpf_xxx_msix_cap_hdr_cn81xx
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t msixen : 1; /**< [ 31: 31](R/W) MSI-X enable.
+ 0 = The MSI-X PBAs corresponding to this function are cleared. Interrupt messages
+ will not be issued.
+ 1 = Normal PBA and MSI-X delivery. */
+ uint32_t funm : 1; /**< [ 30: 30](R/W) Function mask.
+ 0 = Each vectors' mask bit determines whether the vector is masked or not.
+ 1 = All vectors associated with the function are masked, regardless of their respective
+ per-vector mask bits.
+
+ Setting or clearing FUNM has no effect on the state of the per-vector mask bits. */
+ uint32_t reserved_27_29 : 3;
+ uint32_t msixts : 11; /**< [ 26: 16](RO) MSI-X table size encoded as (table size - 1).
+ Internal:
+ From PCC's MSIX_PF_VECS parameter. */
+ uint32_t ncp : 8; /**< [ 15: 8](RO/H) Next capability pointer. If PCCPF_XXX_VSEC_SCTL[EA] is set points to
+ PCCPF_XXX_EA_CAP_HDR, else 0x0. */
+ uint32_t msixcid : 8; /**< [ 7: 0](RO) MSI-X Capability ID. */
+#else /* Word 0 - Little Endian */
+ uint32_t msixcid : 8; /**< [ 7: 0](RO) MSI-X Capability ID. */
+ uint32_t ncp : 8; /**< [ 15: 8](RO/H) Next capability pointer. If PCCPF_XXX_VSEC_SCTL[EA] is set points to
+ PCCPF_XXX_EA_CAP_HDR, else 0x0. */
+ uint32_t msixts : 11; /**< [ 26: 16](RO) MSI-X table size encoded as (table size - 1).
+ Internal:
+ From PCC's MSIX_PF_VECS parameter. */
+ uint32_t reserved_27_29 : 3;
+ uint32_t funm : 1; /**< [ 30: 30](R/W) Function mask.
+ 0 = Each vectors' mask bit determines whether the vector is masked or not.
+ 1 = All vectors associated with the function are masked, regardless of their respective
+ per-vector mask bits.
+
+ Setting or clearing FUNM has no effect on the state of the per-vector mask bits. */
+ uint32_t msixen : 1; /**< [ 31: 31](R/W) MSI-X enable.
+ 0 = The MSI-X PBAs corresponding to this function are cleared. Interrupt messages
+ will not be issued.
+ 1 = Normal PBA and MSI-X delivery. */
+#endif /* Word 0 - End */
+ } cn81xx;
+ /* struct bdk_pccpf_xxx_msix_cap_hdr_cn81xx cn83xx; */
+ /* struct bdk_pccpf_xxx_msix_cap_hdr_cn81xx cn88xxp2; */
+};
+typedef union bdk_pccpf_xxx_msix_cap_hdr bdk_pccpf_xxx_msix_cap_hdr_t;
+
+#define BDK_PCCPF_XXX_MSIX_CAP_HDR BDK_PCCPF_XXX_MSIX_CAP_HDR_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_MSIX_CAP_HDR_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_MSIX_CAP_HDR_FUNC(void)
+{
+ if (CAVIUM_IS_MODEL(CAVIUM_CN81XX))
+ return 0x80;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN83XX))
+ return 0x80;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN88XX_PASS1_X))
+ return 0xb0;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN88XX_PASS2_X))
+ return 0x80;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX))
+ return 0x80;
+ __bdk_csr_fatal("PCCPF_XXX_MSIX_CAP_HDR", 0, 0, 0, 0, 0);
+}
+
+#define typedef_BDK_PCCPF_XXX_MSIX_CAP_HDR bdk_pccpf_xxx_msix_cap_hdr_t
+#define bustype_BDK_PCCPF_XXX_MSIX_CAP_HDR BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_MSIX_CAP_HDR "PCCPF_XXX_MSIX_CAP_HDR"
+#define busnum_BDK_PCCPF_XXX_MSIX_CAP_HDR 0
+#define arguments_BDK_PCCPF_XXX_MSIX_CAP_HDR -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_msix_pba
+ *
+ * PCC PF MSI-X PBA Offset and BIR Register
+ */
+union bdk_pccpf_xxx_msix_pba
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_msix_pba_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t msixpoffs : 29; /**< [ 31: 3](RO) MSI-X PBA offset register. Offset of the MSI-X PBA, as a number of eight-byte words from
+ the base address of the BAR; e.g. 0x1E000 corresponds to a byte offset of 0xF0000. */
+ uint32_t msixpbir : 3; /**< [ 2: 0](RO) MSI-X PBA BAR indicator register (BIR). Indicates which BAR is used to map the MSI-X
+ pending bit array into memory space. As BARs are 64-bits, 0x4 indicates BAR4H/L. */
+#else /* Word 0 - Little Endian */
+ uint32_t msixpbir : 3; /**< [ 2: 0](RO) MSI-X PBA BAR indicator register (BIR). Indicates which BAR is used to map the MSI-X
+ pending bit array into memory space. As BARs are 64-bits, 0x4 indicates BAR4H/L. */
+ uint32_t msixpoffs : 29; /**< [ 31: 3](RO) MSI-X PBA offset register. Offset of the MSI-X PBA, as a number of eight-byte words from
+ the base address of the BAR; e.g. 0x1E000 corresponds to a byte offset of 0xF0000. */
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_msix_pba_s cn8; */
+ struct bdk_pccpf_xxx_msix_pba_cn9
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t msixpoffs : 29; /**< [ 31: 3](RO) MSI-X PBA offset register. Offset of the MSI-X PBA, as a number of eight-byte words from
+ the base address of the BAR; e.g. 0x1E000 corresponds to a byte offset of 0xF0000. */
+ uint32_t msixpbir : 3; /**< [ 2: 0](RO) MSI-X PBA BAR indicator register (BIR). Indicates which BAR is used to map the MSI-X
+ pending bit array into memory space. Typically 0x4, indicating BAR4H/L. */
+#else /* Word 0 - Little Endian */
+ uint32_t msixpbir : 3; /**< [ 2: 0](RO) MSI-X PBA BAR indicator register (BIR). Indicates which BAR is used to map the MSI-X
+ pending bit array into memory space. Typically 0x4, indicating BAR4H/L. */
+ uint32_t msixpoffs : 29; /**< [ 31: 3](RO) MSI-X PBA offset register. Offset of the MSI-X PBA, as a number of eight-byte words from
+ the base address of the BAR; e.g. 0x1E000 corresponds to a byte offset of 0xF0000. */
+#endif /* Word 0 - End */
+ } cn9;
+};
+typedef union bdk_pccpf_xxx_msix_pba bdk_pccpf_xxx_msix_pba_t;
+
+#define BDK_PCCPF_XXX_MSIX_PBA BDK_PCCPF_XXX_MSIX_PBA_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_MSIX_PBA_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_MSIX_PBA_FUNC(void)
+{
+ if (CAVIUM_IS_MODEL(CAVIUM_CN81XX))
+ return 0x88;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN83XX))
+ return 0x88;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN88XX_PASS1_X))
+ return 0xb8;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN88XX_PASS2_X))
+ return 0x88;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX))
+ return 0x88;
+ __bdk_csr_fatal("PCCPF_XXX_MSIX_PBA", 0, 0, 0, 0, 0);
+}
+
+#define typedef_BDK_PCCPF_XXX_MSIX_PBA bdk_pccpf_xxx_msix_pba_t
+#define bustype_BDK_PCCPF_XXX_MSIX_PBA BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_MSIX_PBA "PCCPF_XXX_MSIX_PBA"
+#define busnum_BDK_PCCPF_XXX_MSIX_PBA 0
+#define arguments_BDK_PCCPF_XXX_MSIX_PBA -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_msix_table
+ *
+ * PCC PF MSI-X Table Offset and BIR Register
+ */
+union bdk_pccpf_xxx_msix_table
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_msix_table_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t msixtoffs : 29; /**< [ 31: 3](RO) MSI-X table offset register. Offset of the MSI-X table, as a number of eight-byte
+ words from the base address of the BAR. */
+ uint32_t msixtbir : 3; /**< [ 2: 0](RO) MSI-X table BAR indicator register (BIR). Indicates which BAR is used to map the MSI-X
+ table into memory space. As BARs are 64-bits, 0x4 indicates BAR4H/L. */
+#else /* Word 0 - Little Endian */
+ uint32_t msixtbir : 3; /**< [ 2: 0](RO) MSI-X table BAR indicator register (BIR). Indicates which BAR is used to map the MSI-X
+ table into memory space. As BARs are 64-bits, 0x4 indicates BAR4H/L. */
+ uint32_t msixtoffs : 29; /**< [ 31: 3](RO) MSI-X table offset register. Offset of the MSI-X table, as a number of eight-byte
+ words from the base address of the BAR. */
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_msix_table_s cn8; */
+ struct bdk_pccpf_xxx_msix_table_cn9
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t msixtoffs : 29; /**< [ 31: 3](RO) MSI-X table offset register. Offset of the MSI-X table, as a number of eight-byte
+ words from the base address of the BAR. */
+ uint32_t msixtbir : 3; /**< [ 2: 0](RO) MSI-X table BAR indicator register (BIR). Indicates which BAR is used to map the MSI-X
+ table into memory space. Typically 0x4, indicating BAR4H/L.
+
+ Internal:
+ From PCC generated parameter. */
+#else /* Word 0 - Little Endian */
+ uint32_t msixtbir : 3; /**< [ 2: 0](RO) MSI-X table BAR indicator register (BIR). Indicates which BAR is used to map the MSI-X
+ table into memory space. Typically 0x4, indicating BAR4H/L.
+
+ Internal:
+ From PCC generated parameter. */
+ uint32_t msixtoffs : 29; /**< [ 31: 3](RO) MSI-X table offset register. Offset of the MSI-X table, as a number of eight-byte
+ words from the base address of the BAR. */
+#endif /* Word 0 - End */
+ } cn9;
+};
+typedef union bdk_pccpf_xxx_msix_table bdk_pccpf_xxx_msix_table_t;
+
+#define BDK_PCCPF_XXX_MSIX_TABLE BDK_PCCPF_XXX_MSIX_TABLE_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_MSIX_TABLE_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_MSIX_TABLE_FUNC(void)
+{
+ if (CAVIUM_IS_MODEL(CAVIUM_CN81XX))
+ return 0x84;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN83XX))
+ return 0x84;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN88XX_PASS1_X))
+ return 0xb4;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN88XX_PASS2_X))
+ return 0x84;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX))
+ return 0x84;
+ __bdk_csr_fatal("PCCPF_XXX_MSIX_TABLE", 0, 0, 0, 0, 0);
+}
+
+#define typedef_BDK_PCCPF_XXX_MSIX_TABLE bdk_pccpf_xxx_msix_table_t
+#define bustype_BDK_PCCPF_XXX_MSIX_TABLE BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_MSIX_TABLE "PCCPF_XXX_MSIX_TABLE"
+#define busnum_BDK_PCCPF_XXX_MSIX_TABLE 0
+#define arguments_BDK_PCCPF_XXX_MSIX_TABLE -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_rev
+ *
+ * PCC PF Class Code/Revision ID Register
+ */
+union bdk_pccpf_xxx_rev
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_rev_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t bcc : 8; /**< [ 31: 24](RO) Base class code. See PCC_DEV_IDL_E.
+ Internal:
+ From PCC's tie__class_code[23:16]. */
+ uint32_t sc : 8; /**< [ 23: 16](RO) Subclass code. See PCC_DEV_IDL_E.
+ Internal:
+ From PCC's tie__class_code[15:8]. */
+ uint32_t pi : 8; /**< [ 15: 8](RO) Programming interface. See PCC_DEV_IDL_E.
+ Internal:
+ From PCC's tie__class_code[7:0]. */
+ uint32_t rid : 8; /**< [ 7: 0](RO/H) Revision ID. Read only version of PCCPF_XXX_VSEC_SCTL[RID]. */
+#else /* Word 0 - Little Endian */
+ uint32_t rid : 8; /**< [ 7: 0](RO/H) Revision ID. Read only version of PCCPF_XXX_VSEC_SCTL[RID]. */
+ uint32_t pi : 8; /**< [ 15: 8](RO) Programming interface. See PCC_DEV_IDL_E.
+ Internal:
+ From PCC's tie__class_code[7:0]. */
+ uint32_t sc : 8; /**< [ 23: 16](RO) Subclass code. See PCC_DEV_IDL_E.
+ Internal:
+ From PCC's tie__class_code[15:8]. */
+ uint32_t bcc : 8; /**< [ 31: 24](RO) Base class code. See PCC_DEV_IDL_E.
+ Internal:
+ From PCC's tie__class_code[23:16]. */
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_rev_s cn8; */
+ struct bdk_pccpf_xxx_rev_cn9
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t bcc : 8; /**< [ 31: 24](RO/H) Base class code. See PCC_DEV_IDL_E.
+ Internal:
+ From PCC's tie__class_code[23:16]. */
+ uint32_t sc : 8; /**< [ 23: 16](RO/H) Subclass code. See PCC_DEV_IDL_E.
+ Internal:
+ From PCC's tie__class_code[15:8]. */
+ uint32_t pi : 8; /**< [ 15: 8](RO/H) Programming interface. See PCC_DEV_IDL_E.
+ Internal:
+ From PCC's tie__class_code[7:0]. */
+ uint32_t rid : 8; /**< [ 7: 0](RO/H) Revision ID. Read only version of PCCPF_XXX_VSEC_SCTL[RID]. */
+#else /* Word 0 - Little Endian */
+ uint32_t rid : 8; /**< [ 7: 0](RO/H) Revision ID. Read only version of PCCPF_XXX_VSEC_SCTL[RID]. */
+ uint32_t pi : 8; /**< [ 15: 8](RO/H) Programming interface. See PCC_DEV_IDL_E.
+ Internal:
+ From PCC's tie__class_code[7:0]. */
+ uint32_t sc : 8; /**< [ 23: 16](RO/H) Subclass code. See PCC_DEV_IDL_E.
+ Internal:
+ From PCC's tie__class_code[15:8]. */
+ uint32_t bcc : 8; /**< [ 31: 24](RO/H) Base class code. See PCC_DEV_IDL_E.
+ Internal:
+ From PCC's tie__class_code[23:16]. */
+#endif /* Word 0 - End */
+ } cn9;
+};
+typedef union bdk_pccpf_xxx_rev bdk_pccpf_xxx_rev_t;
+
+#define BDK_PCCPF_XXX_REV BDK_PCCPF_XXX_REV_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_REV_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_REV_FUNC(void)
+{
+ return 8;
+}
+
+#define typedef_BDK_PCCPF_XXX_REV bdk_pccpf_xxx_rev_t
+#define bustype_BDK_PCCPF_XXX_REV BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_REV "PCCPF_XXX_REV"
+#define busnum_BDK_PCCPF_XXX_REV 0
+#define arguments_BDK_PCCPF_XXX_REV -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_sari_nxt
+ *
+ * PCC PF ARI Capability Register
+ * If this device is on bus 0x0, this ARI header is not present and reads as 0x0.
+ */
+union bdk_pccpf_xxx_sari_nxt
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_sari_nxt_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_16_31 : 16;
+ uint32_t nxtfn : 8; /**< [ 15: 8](RO/H) Next function number. 0x0 except for PCC_DEV_IDL_E::MRML, when it points to the next MFD
+ in the linked list of MFDs underneath the RSL and the value comes from
+ PCCPF_XXX_VSEC_CTL[NXTFN_NS] or PCCPF_XXX_VSEC_SCTL[NXTFN_S] for nonsecure or secure
+ accesses respectively. */
+ uint32_t reserved_0_7 : 8;
+#else /* Word 0 - Little Endian */
+ uint32_t reserved_0_7 : 8;
+ uint32_t nxtfn : 8; /**< [ 15: 8](RO/H) Next function number. 0x0 except for PCC_DEV_IDL_E::MRML, when it points to the next MFD
+ in the linked list of MFDs underneath the RSL and the value comes from
+ PCCPF_XXX_VSEC_CTL[NXTFN_NS] or PCCPF_XXX_VSEC_SCTL[NXTFN_S] for nonsecure or secure
+ accesses respectively. */
+ uint32_t reserved_16_31 : 16;
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_sari_nxt_s cn; */
+};
+typedef union bdk_pccpf_xxx_sari_nxt bdk_pccpf_xxx_sari_nxt_t;
+
+#define BDK_PCCPF_XXX_SARI_NXT BDK_PCCPF_XXX_SARI_NXT_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_SARI_NXT_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_SARI_NXT_FUNC(void)
+{
+ if (CAVIUM_IS_MODEL(CAVIUM_CN81XX))
+ return 0x144;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN83XX))
+ return 0x144;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN88XX))
+ return 0x104;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX))
+ return 0x174;
+ __bdk_csr_fatal("PCCPF_XXX_SARI_NXT", 0, 0, 0, 0, 0);
+}
+
+#define typedef_BDK_PCCPF_XXX_SARI_NXT bdk_pccpf_xxx_sari_nxt_t
+#define bustype_BDK_PCCPF_XXX_SARI_NXT BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_SARI_NXT "PCCPF_XXX_SARI_NXT"
+#define busnum_BDK_PCCPF_XXX_SARI_NXT 0
+#define arguments_BDK_PCCPF_XXX_SARI_NXT -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_sriov_bar0l
+ *
+ * PCC PF SR-IOV BAR 0 Lower Register
+ */
+union bdk_pccpf_xxx_sriov_bar0l
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_sriov_bar0l_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_0_31 : 32;
+#else /* Word 0 - Little Endian */
+ uint32_t reserved_0_31 : 32;
+#endif /* Word 0 - End */
+ } s;
+ struct bdk_pccpf_xxx_sriov_bar0l_cn88xxp1
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t lbab : 16; /**< [ 31: 16](R/W/H) Lower bits of the VF BAR 0 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__vfbar0_rbsz and
+ tie__vfbar0_offset. */
+ uint32_t reserved_4_15 : 12;
+ uint32_t pf : 1; /**< [ 3: 3](RO) Prefetchable. */
+ uint32_t typ : 2; /**< [ 2: 1](RO) BAR type. 0x0 if not implemented, else 0x2:
+ 0x0 = 32-bit BAR, or BAR not present.
+ 0x2 = 64-bit BAR. */
+ uint32_t mspc : 1; /**< [ 0: 0](RO) Memory space indicator.
+ 0 = BAR is a memory BAR.
+ 1 = BAR is an I/O BAR. */
+#else /* Word 0 - Little Endian */
+ uint32_t mspc : 1; /**< [ 0: 0](RO) Memory space indicator.
+ 0 = BAR is a memory BAR.
+ 1 = BAR is an I/O BAR. */
+ uint32_t typ : 2; /**< [ 2: 1](RO) BAR type. 0x0 if not implemented, else 0x2:
+ 0x0 = 32-bit BAR, or BAR not present.
+ 0x2 = 64-bit BAR. */
+ uint32_t pf : 1; /**< [ 3: 3](RO) Prefetchable. */
+ uint32_t reserved_4_15 : 12;
+ uint32_t lbab : 16; /**< [ 31: 16](R/W/H) Lower bits of the VF BAR 0 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__vfbar0_rbsz and
+ tie__vfbar0_offset. */
+#endif /* Word 0 - End */
+ } cn88xxp1;
+ struct bdk_pccpf_xxx_sriov_bar0l_cn9
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t bar : 32; /**< [ 31: 0](RO) Always zero. Enhanced allocation used instead of BARs. */
+#else /* Word 0 - Little Endian */
+ uint32_t bar : 32; /**< [ 31: 0](RO) Always zero. Enhanced allocation used instead of BARs. */
+#endif /* Word 0 - End */
+ } cn9;
+ struct bdk_pccpf_xxx_sriov_bar0l_cn81xx
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t lbab : 16; /**< [ 31: 16](R/W/H) Lower bits of the VF BAR 0 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__vfbar0_rbsz and
+ tie__vfbar0_offset. */
+ uint32_t reserved_4_15 : 12;
+ uint32_t pf : 1; /**< [ 3: 3](RO) Prefetchable. */
+ uint32_t typ : 2; /**< [ 2: 1](RO/H) BAR type. 0x0 if not implemented or PCCPF_XXX_VSEC_SCTL[EA] is set, else 0x2:
+ 0x0 = 32-bit BAR, or BAR not present.
+ 0x2 = 64-bit BAR. */
+ uint32_t mspc : 1; /**< [ 0: 0](RO) Memory Space Indicator.
+ 0 = BAR is a memory BAR.
+ 1 = BAR is an I/O BAR. */
+#else /* Word 0 - Little Endian */
+ uint32_t mspc : 1; /**< [ 0: 0](RO) Memory Space Indicator.
+ 0 = BAR is a memory BAR.
+ 1 = BAR is an I/O BAR. */
+ uint32_t typ : 2; /**< [ 2: 1](RO/H) BAR type. 0x0 if not implemented or PCCPF_XXX_VSEC_SCTL[EA] is set, else 0x2:
+ 0x0 = 32-bit BAR, or BAR not present.
+ 0x2 = 64-bit BAR. */
+ uint32_t pf : 1; /**< [ 3: 3](RO) Prefetchable. */
+ uint32_t reserved_4_15 : 12;
+ uint32_t lbab : 16; /**< [ 31: 16](R/W/H) Lower bits of the VF BAR 0 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__vfbar0_rbsz and
+ tie__vfbar0_offset. */
+#endif /* Word 0 - End */
+ } cn81xx;
+ struct bdk_pccpf_xxx_sriov_bar0l_cn83xx
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t lbab : 16; /**< [ 31: 16](R/W/H) Lower bits of the VF BAR 0 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__vfbar0_rbsz and
+ tie__vfbar0_offset. */
+ uint32_t reserved_4_15 : 12;
+ uint32_t pf : 1; /**< [ 3: 3](RO) Prefetchable. */
+ uint32_t typ : 2; /**< [ 2: 1](RO/H) BAR type. 0x0 if not implemented or PCCPF_XXX_VSEC_SCTL[EA] is set, else 0x2:
+ 0x0 = 32-bit BAR, or BAR not present.
+ 0x2 = 64-bit BAR. */
+ uint32_t mspc : 1; /**< [ 0: 0](RO) Memory space indicator.
+ 0 = BAR is a memory BAR.
+ 1 = BAR is an I/O BAR. */
+#else /* Word 0 - Little Endian */
+ uint32_t mspc : 1; /**< [ 0: 0](RO) Memory space indicator.
+ 0 = BAR is a memory BAR.
+ 1 = BAR is an I/O BAR. */
+ uint32_t typ : 2; /**< [ 2: 1](RO/H) BAR type. 0x0 if not implemented or PCCPF_XXX_VSEC_SCTL[EA] is set, else 0x2:
+ 0x0 = 32-bit BAR, or BAR not present.
+ 0x2 = 64-bit BAR. */
+ uint32_t pf : 1; /**< [ 3: 3](RO) Prefetchable. */
+ uint32_t reserved_4_15 : 12;
+ uint32_t lbab : 16; /**< [ 31: 16](R/W/H) Lower bits of the VF BAR 0 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__vfbar0_rbsz and
+ tie__vfbar0_offset. */
+#endif /* Word 0 - End */
+ } cn83xx;
+ /* struct bdk_pccpf_xxx_sriov_bar0l_cn83xx cn88xxp2; */
+};
+typedef union bdk_pccpf_xxx_sriov_bar0l bdk_pccpf_xxx_sriov_bar0l_t;
+
+#define BDK_PCCPF_XXX_SRIOV_BAR0L BDK_PCCPF_XXX_SRIOV_BAR0L_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_SRIOV_BAR0L_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_SRIOV_BAR0L_FUNC(void)
+{
+ return 0x1a4;
+}
+
+#define typedef_BDK_PCCPF_XXX_SRIOV_BAR0L bdk_pccpf_xxx_sriov_bar0l_t
+#define bustype_BDK_PCCPF_XXX_SRIOV_BAR0L BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_SRIOV_BAR0L "PCCPF_XXX_SRIOV_BAR0L"
+#define busnum_BDK_PCCPF_XXX_SRIOV_BAR0L 0
+#define arguments_BDK_PCCPF_XXX_SRIOV_BAR0L -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_sriov_bar0u
+ *
+ * PCC PF SR-IOV BAR 0 Upper Register
+ */
+union bdk_pccpf_xxx_sriov_bar0u
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_sriov_bar0u_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_0_31 : 32;
+#else /* Word 0 - Little Endian */
+ uint32_t reserved_0_31 : 32;
+#endif /* Word 0 - End */
+ } s;
+ struct bdk_pccpf_xxx_sriov_bar0u_cn8
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t ubab : 32; /**< [ 31: 0](R/W/H) Upper bits of the VF BAR 0 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__vfbar0_rbsz and tie__vfbar0_offset. */
+#else /* Word 0 - Little Endian */
+ uint32_t ubab : 32; /**< [ 31: 0](R/W/H) Upper bits of the VF BAR 0 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__vfbar0_rbsz and tie__vfbar0_offset. */
+#endif /* Word 0 - End */
+ } cn8;
+ struct bdk_pccpf_xxx_sriov_bar0u_cn9
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t bar : 32; /**< [ 31: 0](RO) Always zero. Enhanced allocation used instead of BARs. */
+#else /* Word 0 - Little Endian */
+ uint32_t bar : 32; /**< [ 31: 0](RO) Always zero. Enhanced allocation used instead of BARs. */
+#endif /* Word 0 - End */
+ } cn9;
+};
+typedef union bdk_pccpf_xxx_sriov_bar0u bdk_pccpf_xxx_sriov_bar0u_t;
+
+#define BDK_PCCPF_XXX_SRIOV_BAR0U BDK_PCCPF_XXX_SRIOV_BAR0U_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_SRIOV_BAR0U_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_SRIOV_BAR0U_FUNC(void)
+{
+ return 0x1a8;
+}
+
+#define typedef_BDK_PCCPF_XXX_SRIOV_BAR0U bdk_pccpf_xxx_sriov_bar0u_t
+#define bustype_BDK_PCCPF_XXX_SRIOV_BAR0U BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_SRIOV_BAR0U "PCCPF_XXX_SRIOV_BAR0U"
+#define busnum_BDK_PCCPF_XXX_SRIOV_BAR0U 0
+#define arguments_BDK_PCCPF_XXX_SRIOV_BAR0U -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_sriov_bar2l
+ *
+ * PCC PF SR-IOV BAR 2 Lower Register
+ */
+union bdk_pccpf_xxx_sriov_bar2l
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_sriov_bar2l_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_0_31 : 32;
+#else /* Word 0 - Little Endian */
+ uint32_t reserved_0_31 : 32;
+#endif /* Word 0 - End */
+ } s;
+ struct bdk_pccpf_xxx_sriov_bar2l_cn88xxp1
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t lbab : 16; /**< [ 31: 16](R/W/H) Lower bits of the VF BAR 2 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__vfbar2_rbsz and tie__vfbar2_offset. */
+ uint32_t reserved_4_15 : 12;
+ uint32_t pf : 1; /**< [ 3: 3](RO) Prefetchable. */
+ uint32_t typ : 2; /**< [ 2: 1](RO) BAR type. 0x0 if not implemented, else 0x2:
+ 0x0 = 32-bit BAR, or BAR not present.
+ 0x2 = 64-bit BAR. */
+ uint32_t mspc : 1; /**< [ 0: 0](RO) Memory space indicator.
+ 0 = BAR is a memory BAR.
+ 1 = BAR is an I/O BAR. */
+#else /* Word 0 - Little Endian */
+ uint32_t mspc : 1; /**< [ 0: 0](RO) Memory space indicator.
+ 0 = BAR is a memory BAR.
+ 1 = BAR is an I/O BAR. */
+ uint32_t typ : 2; /**< [ 2: 1](RO) BAR type. 0x0 if not implemented, else 0x2:
+ 0x0 = 32-bit BAR, or BAR not present.
+ 0x2 = 64-bit BAR. */
+ uint32_t pf : 1; /**< [ 3: 3](RO) Prefetchable. */
+ uint32_t reserved_4_15 : 12;
+ uint32_t lbab : 16; /**< [ 31: 16](R/W/H) Lower bits of the VF BAR 2 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__vfbar2_rbsz and tie__vfbar2_offset. */
+#endif /* Word 0 - End */
+ } cn88xxp1;
+ struct bdk_pccpf_xxx_sriov_bar2l_cn9
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t bar : 32; /**< [ 31: 0](RO) Always zero. Enhanced allocation used instead of BARs. */
+#else /* Word 0 - Little Endian */
+ uint32_t bar : 32; /**< [ 31: 0](RO) Always zero. Enhanced allocation used instead of BARs. */
+#endif /* Word 0 - End */
+ } cn9;
+ struct bdk_pccpf_xxx_sriov_bar2l_cn81xx
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t lbab : 16; /**< [ 31: 16](R/W/H) Lower bits of the VF BAR 2 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__vfbar2_rbsz and tie__vfbar2_offset. */
+ uint32_t reserved_4_15 : 12;
+ uint32_t pf : 1; /**< [ 3: 3](RO) Prefetchable. */
+ uint32_t typ : 2; /**< [ 2: 1](RO/H) BAR type. 0x0 if not implemented or PCCPF_XXX_VSEC_SCTL[EA] is set, else 0x2:
+ 0x0 = 32-bit BAR, or BAR not present.
+ 0x2 = 64-bit BAR. */
+ uint32_t mspc : 1; /**< [ 0: 0](RO) Memory space indicator.
+ 0 = BAR is a memory BAR.
+ 1 = BAR is an I/O BAR. */
+#else /* Word 0 - Little Endian */
+ uint32_t mspc : 1; /**< [ 0: 0](RO) Memory space indicator.
+ 0 = BAR is a memory BAR.
+ 1 = BAR is an I/O BAR. */
+ uint32_t typ : 2; /**< [ 2: 1](RO/H) BAR type. 0x0 if not implemented or PCCPF_XXX_VSEC_SCTL[EA] is set, else 0x2:
+ 0x0 = 32-bit BAR, or BAR not present.
+ 0x2 = 64-bit BAR. */
+ uint32_t pf : 1; /**< [ 3: 3](RO) Prefetchable. */
+ uint32_t reserved_4_15 : 12;
+ uint32_t lbab : 16; /**< [ 31: 16](R/W/H) Lower bits of the VF BAR 2 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__vfbar2_rbsz and tie__vfbar2_offset. */
+#endif /* Word 0 - End */
+ } cn81xx;
+ /* struct bdk_pccpf_xxx_sriov_bar2l_cn81xx cn83xx; */
+ /* struct bdk_pccpf_xxx_sriov_bar2l_cn81xx cn88xxp2; */
+};
+typedef union bdk_pccpf_xxx_sriov_bar2l bdk_pccpf_xxx_sriov_bar2l_t;
+
+#define BDK_PCCPF_XXX_SRIOV_BAR2L BDK_PCCPF_XXX_SRIOV_BAR2L_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_SRIOV_BAR2L_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_SRIOV_BAR2L_FUNC(void)
+{
+ return 0x1ac;
+}
+
+#define typedef_BDK_PCCPF_XXX_SRIOV_BAR2L bdk_pccpf_xxx_sriov_bar2l_t
+#define bustype_BDK_PCCPF_XXX_SRIOV_BAR2L BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_SRIOV_BAR2L "PCCPF_XXX_SRIOV_BAR2L"
+#define busnum_BDK_PCCPF_XXX_SRIOV_BAR2L 0
+#define arguments_BDK_PCCPF_XXX_SRIOV_BAR2L -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_sriov_bar2u
+ *
+ * PCC PF SR-IOV BAR 2 Upper Register
+ */
+union bdk_pccpf_xxx_sriov_bar2u
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_sriov_bar2u_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_0_31 : 32;
+#else /* Word 0 - Little Endian */
+ uint32_t reserved_0_31 : 32;
+#endif /* Word 0 - End */
+ } s;
+ struct bdk_pccpf_xxx_sriov_bar2u_cn8
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t ubab : 32; /**< [ 31: 0](R/W/H) Upper bits of the VF BAR 2 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__vfbar2_rbsz and tie__vfbar2_offset. */
+#else /* Word 0 - Little Endian */
+ uint32_t ubab : 32; /**< [ 31: 0](R/W/H) Upper bits of the VF BAR 2 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__vfbar2_rbsz and tie__vfbar2_offset. */
+#endif /* Word 0 - End */
+ } cn8;
+ struct bdk_pccpf_xxx_sriov_bar2u_cn9
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t bar : 32; /**< [ 31: 0](RO) Always zero. Enhanced allocation used instead of BARs. */
+#else /* Word 0 - Little Endian */
+ uint32_t bar : 32; /**< [ 31: 0](RO) Always zero. Enhanced allocation used instead of BARs. */
+#endif /* Word 0 - End */
+ } cn9;
+};
+typedef union bdk_pccpf_xxx_sriov_bar2u bdk_pccpf_xxx_sriov_bar2u_t;
+
+#define BDK_PCCPF_XXX_SRIOV_BAR2U BDK_PCCPF_XXX_SRIOV_BAR2U_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_SRIOV_BAR2U_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_SRIOV_BAR2U_FUNC(void)
+{
+ return 0x1b0;
+}
+
+#define typedef_BDK_PCCPF_XXX_SRIOV_BAR2U bdk_pccpf_xxx_sriov_bar2u_t
+#define bustype_BDK_PCCPF_XXX_SRIOV_BAR2U BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_SRIOV_BAR2U "PCCPF_XXX_SRIOV_BAR2U"
+#define busnum_BDK_PCCPF_XXX_SRIOV_BAR2U 0
+#define arguments_BDK_PCCPF_XXX_SRIOV_BAR2U -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_sriov_bar4l
+ *
+ * PCC PF SR-IOV BAR 4 Lower Register
+ */
+union bdk_pccpf_xxx_sriov_bar4l
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_sriov_bar4l_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_0_31 : 32;
+#else /* Word 0 - Little Endian */
+ uint32_t reserved_0_31 : 32;
+#endif /* Word 0 - End */
+ } s;
+ struct bdk_pccpf_xxx_sriov_bar4l_cn88xxp1
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t lbab : 16; /**< [ 31: 16](R/W/H) Lower bits of the VF BAR 4 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__vfbar4_rbsz and tie__vfbar4_offset. */
+ uint32_t reserved_4_15 : 12;
+ uint32_t pf : 1; /**< [ 3: 3](RO) Prefetchable. */
+ uint32_t typ : 2; /**< [ 2: 1](RO) BAR type. 0x0 if not implemented, else 0x2:
+ 0x0 = 32-bit BAR, or BAR not present.
+ 0x2 = 64-bit BAR. */
+ uint32_t mspc : 1; /**< [ 0: 0](RO) Memory space indicator.
+ 0 = BAR is a memory BAR.
+ 1 = BAR is an I/O BAR. */
+#else /* Word 0 - Little Endian */
+ uint32_t mspc : 1; /**< [ 0: 0](RO) Memory space indicator.
+ 0 = BAR is a memory BAR.
+ 1 = BAR is an I/O BAR. */
+ uint32_t typ : 2; /**< [ 2: 1](RO) BAR type. 0x0 if not implemented, else 0x2:
+ 0x0 = 32-bit BAR, or BAR not present.
+ 0x2 = 64-bit BAR. */
+ uint32_t pf : 1; /**< [ 3: 3](RO) Prefetchable. */
+ uint32_t reserved_4_15 : 12;
+ uint32_t lbab : 16; /**< [ 31: 16](R/W/H) Lower bits of the VF BAR 4 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__vfbar4_rbsz and tie__vfbar4_offset. */
+#endif /* Word 0 - End */
+ } cn88xxp1;
+ struct bdk_pccpf_xxx_sriov_bar4l_cn9
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t bar : 32; /**< [ 31: 0](RO) Always zero. Enhanced allocation used instead of BARs. */
+#else /* Word 0 - Little Endian */
+ uint32_t bar : 32; /**< [ 31: 0](RO) Always zero. Enhanced allocation used instead of BARs. */
+#endif /* Word 0 - End */
+ } cn9;
+ struct bdk_pccpf_xxx_sriov_bar4l_cn81xx
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t lbab : 16; /**< [ 31: 16](R/W/H) Lower bits of the VF BAR 4 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__vfbar4_rbsz and tie__vfbar4_offset. */
+ uint32_t reserved_4_15 : 12;
+ uint32_t pf : 1; /**< [ 3: 3](RO) Prefetchable. */
+ uint32_t typ : 2; /**< [ 2: 1](RO/H) BAR type. 0x0 if not implemented or PCCPF_XXX_VSEC_SCTL[EA] is set, else 0x2:
+ 0x0 = 32-bit BAR, or BAR not present.
+ 0x2 = 64-bit BAR. */
+ uint32_t mspc : 1; /**< [ 0: 0](RO) Memory space indicator.
+ 0 = BAR is a memory BAR.
+ 1 = BAR is an I/O BAR. */
+#else /* Word 0 - Little Endian */
+ uint32_t mspc : 1; /**< [ 0: 0](RO) Memory space indicator.
+ 0 = BAR is a memory BAR.
+ 1 = BAR is an I/O BAR. */
+ uint32_t typ : 2; /**< [ 2: 1](RO/H) BAR type. 0x0 if not implemented or PCCPF_XXX_VSEC_SCTL[EA] is set, else 0x2:
+ 0x0 = 32-bit BAR, or BAR not present.
+ 0x2 = 64-bit BAR. */
+ uint32_t pf : 1; /**< [ 3: 3](RO) Prefetchable. */
+ uint32_t reserved_4_15 : 12;
+ uint32_t lbab : 16; /**< [ 31: 16](R/W/H) Lower bits of the VF BAR 4 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__vfbar4_rbsz and tie__vfbar4_offset. */
+#endif /* Word 0 - End */
+ } cn81xx;
+ /* struct bdk_pccpf_xxx_sriov_bar4l_cn81xx cn83xx; */
+ /* struct bdk_pccpf_xxx_sriov_bar4l_cn81xx cn88xxp2; */
+};
+typedef union bdk_pccpf_xxx_sriov_bar4l bdk_pccpf_xxx_sriov_bar4l_t;
+
+#define BDK_PCCPF_XXX_SRIOV_BAR4L BDK_PCCPF_XXX_SRIOV_BAR4L_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_SRIOV_BAR4L_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_SRIOV_BAR4L_FUNC(void)
+{
+ return 0x1b4;
+}
+
+#define typedef_BDK_PCCPF_XXX_SRIOV_BAR4L bdk_pccpf_xxx_sriov_bar4l_t
+#define bustype_BDK_PCCPF_XXX_SRIOV_BAR4L BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_SRIOV_BAR4L "PCCPF_XXX_SRIOV_BAR4L"
+#define busnum_BDK_PCCPF_XXX_SRIOV_BAR4L 0
+#define arguments_BDK_PCCPF_XXX_SRIOV_BAR4L -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_sriov_bar4u
+ *
+ * PCC PF SR-IOV BAR 4 Upper Register
+ */
+union bdk_pccpf_xxx_sriov_bar4u
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_sriov_bar4u_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_0_31 : 32;
+#else /* Word 0 - Little Endian */
+ uint32_t reserved_0_31 : 32;
+#endif /* Word 0 - End */
+ } s;
+ struct bdk_pccpf_xxx_sriov_bar4u_cn8
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t ubab : 32; /**< [ 31: 0](R/W/H) Upper bits of the VF BAR 4 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__vfbar4_rbsz and tie__vfbar4_offset. */
+#else /* Word 0 - Little Endian */
+ uint32_t ubab : 32; /**< [ 31: 0](R/W/H) Upper bits of the VF BAR 4 base address. See additional BAR related notes in
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__vfbar4_rbsz and tie__vfbar4_offset. */
+#endif /* Word 0 - End */
+ } cn8;
+ struct bdk_pccpf_xxx_sriov_bar4u_cn9
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t bar : 32; /**< [ 31: 0](RO) Always zero. Enhanced allocation used instead of BARs. */
+#else /* Word 0 - Little Endian */
+ uint32_t bar : 32; /**< [ 31: 0](RO) Always zero. Enhanced allocation used instead of BARs. */
+#endif /* Word 0 - End */
+ } cn9;
+};
+typedef union bdk_pccpf_xxx_sriov_bar4u bdk_pccpf_xxx_sriov_bar4u_t;
+
+#define BDK_PCCPF_XXX_SRIOV_BAR4U BDK_PCCPF_XXX_SRIOV_BAR4U_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_SRIOV_BAR4U_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_SRIOV_BAR4U_FUNC(void)
+{
+ return 0x1b8;
+}
+
+#define typedef_BDK_PCCPF_XXX_SRIOV_BAR4U bdk_pccpf_xxx_sriov_bar4u_t
+#define bustype_BDK_PCCPF_XXX_SRIOV_BAR4U BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_SRIOV_BAR4U "PCCPF_XXX_SRIOV_BAR4U"
+#define busnum_BDK_PCCPF_XXX_SRIOV_BAR4U 0
+#define arguments_BDK_PCCPF_XXX_SRIOV_BAR4U -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_sriov_cap
+ *
+ * PCC PF SR-IOV Capability Register
+ */
+union bdk_pccpf_xxx_sriov_cap
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_sriov_cap_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t vfmimn : 11; /**< [ 31: 21](RO) VF migration interrupt message number. */
+ uint32_t reserved_2_20 : 19;
+ uint32_t arichp : 1; /**< [ 1: 1](RO) ARI capable hierarchy preserved. */
+ uint32_t vfmc : 1; /**< [ 0: 0](RO) VF migration capable. */
+#else /* Word 0 - Little Endian */
+ uint32_t vfmc : 1; /**< [ 0: 0](RO) VF migration capable. */
+ uint32_t arichp : 1; /**< [ 1: 1](RO) ARI capable hierarchy preserved. */
+ uint32_t reserved_2_20 : 19;
+ uint32_t vfmimn : 11; /**< [ 31: 21](RO) VF migration interrupt message number. */
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_sriov_cap_s cn; */
+};
+typedef union bdk_pccpf_xxx_sriov_cap bdk_pccpf_xxx_sriov_cap_t;
+
+#define BDK_PCCPF_XXX_SRIOV_CAP BDK_PCCPF_XXX_SRIOV_CAP_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_SRIOV_CAP_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_SRIOV_CAP_FUNC(void)
+{
+ return 0x184;
+}
+
+#define typedef_BDK_PCCPF_XXX_SRIOV_CAP bdk_pccpf_xxx_sriov_cap_t
+#define bustype_BDK_PCCPF_XXX_SRIOV_CAP BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_SRIOV_CAP "PCCPF_XXX_SRIOV_CAP"
+#define busnum_BDK_PCCPF_XXX_SRIOV_CAP 0
+#define arguments_BDK_PCCPF_XXX_SRIOV_CAP -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_sriov_cap_hdr
+ *
+ * PCC PF SR-IOV Capability Header Register
+ * This register is the header of the 64-byte PCI SR-IOV capability structure.
+ */
+union bdk_pccpf_xxx_sriov_cap_hdr
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_sriov_cap_hdr_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t nco : 12; /**< [ 31: 20](RO) Next capability offset. None. */
+ uint32_t cv : 4; /**< [ 19: 16](RO) Capability version. */
+ uint32_t pcieec : 16; /**< [ 15: 0](RO) PCIE extended capability. */
+#else /* Word 0 - Little Endian */
+ uint32_t pcieec : 16; /**< [ 15: 0](RO) PCIE extended capability. */
+ uint32_t cv : 4; /**< [ 19: 16](RO) Capability version. */
+ uint32_t nco : 12; /**< [ 31: 20](RO) Next capability offset. None. */
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_sriov_cap_hdr_s cn; */
+};
+typedef union bdk_pccpf_xxx_sriov_cap_hdr bdk_pccpf_xxx_sriov_cap_hdr_t;
+
+#define BDK_PCCPF_XXX_SRIOV_CAP_HDR BDK_PCCPF_XXX_SRIOV_CAP_HDR_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_SRIOV_CAP_HDR_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_SRIOV_CAP_HDR_FUNC(void)
+{
+ return 0x180;
+}
+
+#define typedef_BDK_PCCPF_XXX_SRIOV_CAP_HDR bdk_pccpf_xxx_sriov_cap_hdr_t
+#define bustype_BDK_PCCPF_XXX_SRIOV_CAP_HDR BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_SRIOV_CAP_HDR "PCCPF_XXX_SRIOV_CAP_HDR"
+#define busnum_BDK_PCCPF_XXX_SRIOV_CAP_HDR 0
+#define arguments_BDK_PCCPF_XXX_SRIOV_CAP_HDR -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_sriov_ctl
+ *
+ * PCC PF SR-IOV Control/Status Register
+ * This register is reset on a chip domain reset.
+ */
+union bdk_pccpf_xxx_sriov_ctl
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_sriov_ctl_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_17_31 : 15;
+ uint32_t ms : 1; /**< [ 16: 16](RO) VF migration status. */
+ uint32_t reserved_5_15 : 11;
+ uint32_t ach : 1; /**< [ 4: 4](RO) ARI capable hierarchy. */
+ uint32_t mse : 1; /**< [ 3: 3](RO) VF MSE. Master space enable always on. */
+ uint32_t mie : 1; /**< [ 2: 2](RO) VF migration interrupt enable. */
+ uint32_t me : 1; /**< [ 1: 1](RO) VF migration enable. */
+ uint32_t vfe : 1; /**< [ 0: 0](RO) VF enable. */
+#else /* Word 0 - Little Endian */
+ uint32_t vfe : 1; /**< [ 0: 0](RO) VF enable. */
+ uint32_t me : 1; /**< [ 1: 1](RO) VF migration enable. */
+ uint32_t mie : 1; /**< [ 2: 2](RO) VF migration interrupt enable. */
+ uint32_t mse : 1; /**< [ 3: 3](RO) VF MSE. Master space enable always on. */
+ uint32_t ach : 1; /**< [ 4: 4](RO) ARI capable hierarchy. */
+ uint32_t reserved_5_15 : 11;
+ uint32_t ms : 1; /**< [ 16: 16](RO) VF migration status. */
+ uint32_t reserved_17_31 : 15;
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_sriov_ctl_s cn8; */
+ struct bdk_pccpf_xxx_sriov_ctl_cn9
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_17_31 : 15;
+ uint32_t ms : 1; /**< [ 16: 16](RO) VF migration status. */
+ uint32_t reserved_5_15 : 11;
+ uint32_t ach : 1; /**< [ 4: 4](RO) ARI capable hierarchy. */
+ uint32_t mse : 1; /**< [ 3: 3](RO) VF MSE. Master space enable always on. */
+ uint32_t mie : 1; /**< [ 2: 2](RO) VF migration interrupt enable. */
+ uint32_t me : 1; /**< [ 1: 1](RO) VF migration enable. */
+ uint32_t vfe : 1; /**< [ 0: 0](R/W) VF enable. If PCCPF_XXX_E_DEV_CAP[FLR] is clear, always set and writes have no
+ effect. Resets to zero and writable otherwise.
+
+ When clear, PCCVF_XXX_* CSRs are reset, reads and writes to them are RAO/WI.
+
+ Internal:
+ When clear, forces PCCVF_XXX_CMD[ME] = pcc__blk_masterena = 0. */
+#else /* Word 0 - Little Endian */
+ uint32_t vfe : 1; /**< [ 0: 0](R/W) VF enable. If PCCPF_XXX_E_DEV_CAP[FLR] is clear, always set and writes have no
+ effect. Resets to zero and writable otherwise.
+
+ When clear, PCCVF_XXX_* CSRs are reset, reads and writes to them are RAO/WI.
+
+ Internal:
+ When clear, forces PCCVF_XXX_CMD[ME] = pcc__blk_masterena = 0. */
+ uint32_t me : 1; /**< [ 1: 1](RO) VF migration enable. */
+ uint32_t mie : 1; /**< [ 2: 2](RO) VF migration interrupt enable. */
+ uint32_t mse : 1; /**< [ 3: 3](RO) VF MSE. Master space enable always on. */
+ uint32_t ach : 1; /**< [ 4: 4](RO) ARI capable hierarchy. */
+ uint32_t reserved_5_15 : 11;
+ uint32_t ms : 1; /**< [ 16: 16](RO) VF migration status. */
+ uint32_t reserved_17_31 : 15;
+#endif /* Word 0 - End */
+ } cn9;
+};
+typedef union bdk_pccpf_xxx_sriov_ctl bdk_pccpf_xxx_sriov_ctl_t;
+
+#define BDK_PCCPF_XXX_SRIOV_CTL BDK_PCCPF_XXX_SRIOV_CTL_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_SRIOV_CTL_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_SRIOV_CTL_FUNC(void)
+{
+ return 0x188;
+}
+
+#define typedef_BDK_PCCPF_XXX_SRIOV_CTL bdk_pccpf_xxx_sriov_ctl_t
+#define bustype_BDK_PCCPF_XXX_SRIOV_CTL BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_SRIOV_CTL "PCCPF_XXX_SRIOV_CTL"
+#define busnum_BDK_PCCPF_XXX_SRIOV_CTL 0
+#define arguments_BDK_PCCPF_XXX_SRIOV_CTL -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_sriov_dev
+ *
+ * PCC PF SR-IOV VF Device ID Register
+ */
+union bdk_pccpf_xxx_sriov_dev
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_sriov_dev_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t vfdev : 16; /**< [ 31: 16](RO) VF device ID. \<15:8\> is PCC_PROD_E::GEN. \<7:0\> enumerated by PCC_DEV_IDL_E.
+ e.g. 0xA033 for RNM_VF.
+
+ Internal:
+ Unit from PCC's tie__vfunitid. */
+ uint32_t reserved_0_15 : 16;
+#else /* Word 0 - Little Endian */
+ uint32_t reserved_0_15 : 16;
+ uint32_t vfdev : 16; /**< [ 31: 16](RO) VF device ID. \<15:8\> is PCC_PROD_E::GEN. \<7:0\> enumerated by PCC_DEV_IDL_E.
+ e.g. 0xA033 for RNM_VF.
+
+ Internal:
+ Unit from PCC's tie__vfunitid. */
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_sriov_dev_s cn8; */
+ struct bdk_pccpf_xxx_sriov_dev_cn9
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t vfdev : 16; /**< [ 31: 16](RO/H) VF device ID. \<15:8\> is PCC_PROD_E::GEN. \<7:0\> enumerated by PCC_DEV_IDL_E.
+ e.g. 0xA033 for RNM's VF (PCC_DEV_IDL_E::RNM_VF).
+
+ Internal:
+ Unit from PCC's tie__vfunitid. */
+ uint32_t reserved_0_15 : 16;
+#else /* Word 0 - Little Endian */
+ uint32_t reserved_0_15 : 16;
+ uint32_t vfdev : 16; /**< [ 31: 16](RO/H) VF device ID. \<15:8\> is PCC_PROD_E::GEN. \<7:0\> enumerated by PCC_DEV_IDL_E.
+ e.g. 0xA033 for RNM's VF (PCC_DEV_IDL_E::RNM_VF).
+
+ Internal:
+ Unit from PCC's tie__vfunitid. */
+#endif /* Word 0 - End */
+ } cn9;
+};
+typedef union bdk_pccpf_xxx_sriov_dev bdk_pccpf_xxx_sriov_dev_t;
+
+#define BDK_PCCPF_XXX_SRIOV_DEV BDK_PCCPF_XXX_SRIOV_DEV_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_SRIOV_DEV_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_SRIOV_DEV_FUNC(void)
+{
+ return 0x198;
+}
+
+#define typedef_BDK_PCCPF_XXX_SRIOV_DEV bdk_pccpf_xxx_sriov_dev_t
+#define bustype_BDK_PCCPF_XXX_SRIOV_DEV BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_SRIOV_DEV "PCCPF_XXX_SRIOV_DEV"
+#define busnum_BDK_PCCPF_XXX_SRIOV_DEV 0
+#define arguments_BDK_PCCPF_XXX_SRIOV_DEV -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_sriov_fo
+ *
+ * PCC PF SR-IOV First VF Offset/VF Stride Register
+ */
+union bdk_pccpf_xxx_sriov_fo
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_sriov_fo_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t vfs : 16; /**< [ 31: 16](RO) VF stride. */
+ uint32_t fo : 16; /**< [ 15: 0](RO) First VF offset. */
+#else /* Word 0 - Little Endian */
+ uint32_t fo : 16; /**< [ 15: 0](RO) First VF offset. */
+ uint32_t vfs : 16; /**< [ 31: 16](RO) VF stride. */
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_sriov_fo_s cn; */
+};
+typedef union bdk_pccpf_xxx_sriov_fo bdk_pccpf_xxx_sriov_fo_t;
+
+#define BDK_PCCPF_XXX_SRIOV_FO BDK_PCCPF_XXX_SRIOV_FO_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_SRIOV_FO_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_SRIOV_FO_FUNC(void)
+{
+ return 0x194;
+}
+
+#define typedef_BDK_PCCPF_XXX_SRIOV_FO bdk_pccpf_xxx_sriov_fo_t
+#define bustype_BDK_PCCPF_XXX_SRIOV_FO BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_SRIOV_FO "PCCPF_XXX_SRIOV_FO"
+#define busnum_BDK_PCCPF_XXX_SRIOV_FO 0
+#define arguments_BDK_PCCPF_XXX_SRIOV_FO -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_sriov_nvf
+ *
+ * PCC PF SR-IOV Number of VFs/Function Dependency Link Register
+ */
+union bdk_pccpf_xxx_sriov_nvf
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_sriov_nvf_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_24_31 : 8;
+ uint32_t fdl : 8; /**< [ 23: 16](RO) Function dependency link. Only a single PF 0 exists. */
+ uint32_t nvf : 16; /**< [ 15: 0](RO) Number of VFs that are visible.
+ Internal:
+ From PCC's MSIX_VFS parameter. */
+#else /* Word 0 - Little Endian */
+ uint32_t nvf : 16; /**< [ 15: 0](RO) Number of VFs that are visible.
+ Internal:
+ From PCC's MSIX_VFS parameter. */
+ uint32_t fdl : 8; /**< [ 23: 16](RO) Function dependency link. Only a single PF 0 exists. */
+ uint32_t reserved_24_31 : 8;
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_sriov_nvf_s cn8; */
+ struct bdk_pccpf_xxx_sriov_nvf_cn9
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t reserved_24_31 : 8;
+ uint32_t fdl : 8; /**< [ 23: 16](RO) Function dependency link. Only a single PF 0 exists. */
+ uint32_t nvf : 16; /**< [ 15: 0](RO/H) Number of VFs that are visible.
+ Internal:
+ From PCC generated parameter. For RVU, from RVU_PRIV_PF()_CFG[NVF]. */
+#else /* Word 0 - Little Endian */
+ uint32_t nvf : 16; /**< [ 15: 0](RO/H) Number of VFs that are visible.
+ Internal:
+ From PCC generated parameter. For RVU, from RVU_PRIV_PF()_CFG[NVF]. */
+ uint32_t fdl : 8; /**< [ 23: 16](RO) Function dependency link. Only a single PF 0 exists. */
+ uint32_t reserved_24_31 : 8;
+#endif /* Word 0 - End */
+ } cn9;
+};
+typedef union bdk_pccpf_xxx_sriov_nvf bdk_pccpf_xxx_sriov_nvf_t;
+
+#define BDK_PCCPF_XXX_SRIOV_NVF BDK_PCCPF_XXX_SRIOV_NVF_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_SRIOV_NVF_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_SRIOV_NVF_FUNC(void)
+{
+ return 0x190;
+}
+
+#define typedef_BDK_PCCPF_XXX_SRIOV_NVF bdk_pccpf_xxx_sriov_nvf_t
+#define bustype_BDK_PCCPF_XXX_SRIOV_NVF BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_SRIOV_NVF "PCCPF_XXX_SRIOV_NVF"
+#define busnum_BDK_PCCPF_XXX_SRIOV_NVF 0
+#define arguments_BDK_PCCPF_XXX_SRIOV_NVF -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_sriov_ps
+ *
+ * PCC PF SR-IOV System Page Sizes Register
+ */
+union bdk_pccpf_xxx_sriov_ps
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_sriov_ps_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t ps : 32; /**< [ 31: 0](RO) System page size. 1MB, as that is minimum stride between VFs. */
+#else /* Word 0 - Little Endian */
+ uint32_t ps : 32; /**< [ 31: 0](RO) System page size. 1MB, as that is minimum stride between VFs. */
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_sriov_ps_s cn; */
+};
+typedef union bdk_pccpf_xxx_sriov_ps bdk_pccpf_xxx_sriov_ps_t;
+
+#define BDK_PCCPF_XXX_SRIOV_PS BDK_PCCPF_XXX_SRIOV_PS_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_SRIOV_PS_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_SRIOV_PS_FUNC(void)
+{
+ return 0x1a0;
+}
+
+#define typedef_BDK_PCCPF_XXX_SRIOV_PS bdk_pccpf_xxx_sriov_ps_t
+#define bustype_BDK_PCCPF_XXX_SRIOV_PS BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_SRIOV_PS "PCCPF_XXX_SRIOV_PS"
+#define busnum_BDK_PCCPF_XXX_SRIOV_PS 0
+#define arguments_BDK_PCCPF_XXX_SRIOV_PS -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_sriov_supps
+ *
+ * PCC PF SR-IOV Supported Page Sizes Register
+ */
+union bdk_pccpf_xxx_sriov_supps
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_sriov_supps_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t supps : 32; /**< [ 31: 0](RO) Supported page sizes. Indicates required 4K, 8K, 64K, 256K, 1M, 4M. The BAR fixed
+ assignment makes this not useful. */
+#else /* Word 0 - Little Endian */
+ uint32_t supps : 32; /**< [ 31: 0](RO) Supported page sizes. Indicates required 4K, 8K, 64K, 256K, 1M, 4M. The BAR fixed
+ assignment makes this not useful. */
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_sriov_supps_s cn; */
+};
+typedef union bdk_pccpf_xxx_sriov_supps bdk_pccpf_xxx_sriov_supps_t;
+
+#define BDK_PCCPF_XXX_SRIOV_SUPPS BDK_PCCPF_XXX_SRIOV_SUPPS_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_SRIOV_SUPPS_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_SRIOV_SUPPS_FUNC(void)
+{
+ return 0x19c;
+}
+
+#define typedef_BDK_PCCPF_XXX_SRIOV_SUPPS bdk_pccpf_xxx_sriov_supps_t
+#define bustype_BDK_PCCPF_XXX_SRIOV_SUPPS BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_SRIOV_SUPPS "PCCPF_XXX_SRIOV_SUPPS"
+#define busnum_BDK_PCCPF_XXX_SRIOV_SUPPS 0
+#define arguments_BDK_PCCPF_XXX_SRIOV_SUPPS -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_sriov_vfs
+ *
+ * PCC PF SR-IOV Initial VFs/Total VFs Register
+ */
+union bdk_pccpf_xxx_sriov_vfs
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_sriov_vfs_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t tvf : 16; /**< [ 31: 16](RO) Total VFs.
+ Internal:
+ from pcc's MSIX_VFS parameter. */
+ uint32_t ivf : 16; /**< [ 15: 0](RO) Initial VFs.
+ Internal:
+ From PCC's MSIX_VFS parameter. */
+#else /* Word 0 - Little Endian */
+ uint32_t ivf : 16; /**< [ 15: 0](RO) Initial VFs.
+ Internal:
+ From PCC's MSIX_VFS parameter. */
+ uint32_t tvf : 16; /**< [ 31: 16](RO) Total VFs.
+ Internal:
+ from pcc's MSIX_VFS parameter. */
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_sriov_vfs_s cn8; */
+ struct bdk_pccpf_xxx_sriov_vfs_cn9
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t tvf : 16; /**< [ 31: 16](RO) Total VFs.
+ Internal:
+ From PCC generated parameter. For RVU, from RVU_PRIV_CONST[MAX_VFS_PER_PF]. */
+ uint32_t ivf : 16; /**< [ 15: 0](RO/H) Initial VFs.
+ Internal:
+ From PCC generated parameter. For RVU, from RVU_PRIV_PF()_CFG[NVF]. */
+#else /* Word 0 - Little Endian */
+ uint32_t ivf : 16; /**< [ 15: 0](RO/H) Initial VFs.
+ Internal:
+ From PCC generated parameter. For RVU, from RVU_PRIV_PF()_CFG[NVF]. */
+ uint32_t tvf : 16; /**< [ 31: 16](RO) Total VFs.
+ Internal:
+ From PCC generated parameter. For RVU, from RVU_PRIV_CONST[MAX_VFS_PER_PF]. */
+#endif /* Word 0 - End */
+ } cn9;
+};
+typedef union bdk_pccpf_xxx_sriov_vfs bdk_pccpf_xxx_sriov_vfs_t;
+
+#define BDK_PCCPF_XXX_SRIOV_VFS BDK_PCCPF_XXX_SRIOV_VFS_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_SRIOV_VFS_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_SRIOV_VFS_FUNC(void)
+{
+ return 0x18c;
+}
+
+#define typedef_BDK_PCCPF_XXX_SRIOV_VFS bdk_pccpf_xxx_sriov_vfs_t
+#define bustype_BDK_PCCPF_XXX_SRIOV_VFS BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_SRIOV_VFS "PCCPF_XXX_SRIOV_VFS"
+#define busnum_BDK_PCCPF_XXX_SRIOV_VFS 0
+#define arguments_BDK_PCCPF_XXX_SRIOV_VFS -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_subid
+ *
+ * PCC PF Subsystem ID/Subsystem Vendor ID Register
+ */
+union bdk_pccpf_xxx_subid
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_subid_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t ssid : 16; /**< [ 31: 16](RO) Device ID. \<15:8\> enumerated by PCC_PROD_E. \<7:0\> enumerated by PCC_DEV_IDL_E.
+
+ Internal:
+ Unit from PCC's tie__prod and tie__pfunitid. */
+ uint32_t ssvid : 16; /**< [ 15: 0](RO) Subsystem vendor ID. Cavium = 0x177D. */
+#else /* Word 0 - Little Endian */
+ uint32_t ssvid : 16; /**< [ 15: 0](RO) Subsystem vendor ID. Cavium = 0x177D. */
+ uint32_t ssid : 16; /**< [ 31: 16](RO) Device ID. \<15:8\> enumerated by PCC_PROD_E. \<7:0\> enumerated by PCC_DEV_IDL_E.
+
+ Internal:
+ Unit from PCC's tie__prod and tie__pfunitid. */
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_subid_s cn8; */
+ struct bdk_pccpf_xxx_subid_cn9
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t ssid : 16; /**< [ 31: 16](RO) Subsystem ID. \<15:8\> enumerated by PCC_PROD_E. \<7:0\> = 0x0.
+
+ Internal:
+ \<15:8\> from PCC's tie__prod. */
+ uint32_t ssvid : 16; /**< [ 15: 0](RO) Subsystem vendor ID. Cavium = 0x177D. */
+#else /* Word 0 - Little Endian */
+ uint32_t ssvid : 16; /**< [ 15: 0](RO) Subsystem vendor ID. Cavium = 0x177D. */
+ uint32_t ssid : 16; /**< [ 31: 16](RO) Subsystem ID. \<15:8\> enumerated by PCC_PROD_E. \<7:0\> = 0x0.
+
+ Internal:
+ \<15:8\> from PCC's tie__prod. */
+#endif /* Word 0 - End */
+ } cn9;
+};
+typedef union bdk_pccpf_xxx_subid bdk_pccpf_xxx_subid_t;
+
+#define BDK_PCCPF_XXX_SUBID BDK_PCCPF_XXX_SUBID_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_SUBID_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_SUBID_FUNC(void)
+{
+ return 0x2c;
+}
+
+#define typedef_BDK_PCCPF_XXX_SUBID bdk_pccpf_xxx_subid_t
+#define bustype_BDK_PCCPF_XXX_SUBID BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_SUBID "PCCPF_XXX_SUBID"
+#define busnum_BDK_PCCPF_XXX_SUBID 0
+#define arguments_BDK_PCCPF_XXX_SUBID -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_vsec_bar0l
+ *
+ * PCC PF Vendor-Specific Address 0 Lower Register
+ */
+union bdk_pccpf_xxx_vsec_bar0l
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_vsec_bar0l_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t lbab : 16; /**< [ 31: 16](RO) Lower bits of the hard-coded BAR 0 base address; the reset value for
+ PCCPF_XXX_BAR0L[LBAB].
+
+ Internal:
+ From PCC's tie__pfbar0_offset. */
+ uint32_t reserved_0_15 : 16;
+#else /* Word 0 - Little Endian */
+ uint32_t reserved_0_15 : 16;
+ uint32_t lbab : 16; /**< [ 31: 16](RO) Lower bits of the hard-coded BAR 0 base address; the reset value for
+ PCCPF_XXX_BAR0L[LBAB].
+
+ Internal:
+ From PCC's tie__pfbar0_offset. */
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_vsec_bar0l_s cn; */
+};
+typedef union bdk_pccpf_xxx_vsec_bar0l bdk_pccpf_xxx_vsec_bar0l_t;
+
+#define BDK_PCCPF_XXX_VSEC_BAR0L BDK_PCCPF_XXX_VSEC_BAR0L_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_VSEC_BAR0L_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_VSEC_BAR0L_FUNC(void)
+{
+ if (CAVIUM_IS_MODEL(CAVIUM_CN81XX))
+ return 0x110;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN83XX))
+ return 0x110;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN88XX))
+ return 0x118;
+ __bdk_csr_fatal("PCCPF_XXX_VSEC_BAR0L", 0, 0, 0, 0, 0);
+}
+
+#define typedef_BDK_PCCPF_XXX_VSEC_BAR0L bdk_pccpf_xxx_vsec_bar0l_t
+#define bustype_BDK_PCCPF_XXX_VSEC_BAR0L BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_VSEC_BAR0L "PCCPF_XXX_VSEC_BAR0L"
+#define busnum_BDK_PCCPF_XXX_VSEC_BAR0L 0
+#define arguments_BDK_PCCPF_XXX_VSEC_BAR0L -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_vsec_bar0u
+ *
+ * PCC PF Vendor-Specific Address 0 Upper Register
+ */
+union bdk_pccpf_xxx_vsec_bar0u
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_vsec_bar0u_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t ubab : 32; /**< [ 31: 0](RO) Upper bits of the hard-coded BAR 0 base address; the reset value for
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__pfbar0_offset. */
+#else /* Word 0 - Little Endian */
+ uint32_t ubab : 32; /**< [ 31: 0](RO) Upper bits of the hard-coded BAR 0 base address; the reset value for
+ PCCPF_XXX_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__pfbar0_offset. */
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_vsec_bar0u_s cn; */
+};
+typedef union bdk_pccpf_xxx_vsec_bar0u bdk_pccpf_xxx_vsec_bar0u_t;
+
+#define BDK_PCCPF_XXX_VSEC_BAR0U BDK_PCCPF_XXX_VSEC_BAR0U_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_VSEC_BAR0U_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_VSEC_BAR0U_FUNC(void)
+{
+ if (CAVIUM_IS_MODEL(CAVIUM_CN81XX))
+ return 0x114;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN83XX))
+ return 0x114;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN88XX))
+ return 0x11c;
+ __bdk_csr_fatal("PCCPF_XXX_VSEC_BAR0U", 0, 0, 0, 0, 0);
+}
+
+#define typedef_BDK_PCCPF_XXX_VSEC_BAR0U bdk_pccpf_xxx_vsec_bar0u_t
+#define bustype_BDK_PCCPF_XXX_VSEC_BAR0U BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_VSEC_BAR0U "PCCPF_XXX_VSEC_BAR0U"
+#define busnum_BDK_PCCPF_XXX_VSEC_BAR0U 0
+#define arguments_BDK_PCCPF_XXX_VSEC_BAR0U -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_vsec_bar2l
+ *
+ * PCC PF Vendor-Specific Address 2 Lower Register
+ */
+union bdk_pccpf_xxx_vsec_bar2l
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_vsec_bar2l_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t lbab : 16; /**< [ 31: 16](RO) Lower bits of the hard-coded BAR 2 base address; the reset value for
+ PCCPF_XXX_BAR2L[LBAB].
+
+ Internal:
+ From PCC's tie__pfbar2_offset. */
+ uint32_t reserved_0_15 : 16;
+#else /* Word 0 - Little Endian */
+ uint32_t reserved_0_15 : 16;
+ uint32_t lbab : 16; /**< [ 31: 16](RO) Lower bits of the hard-coded BAR 2 base address; the reset value for
+ PCCPF_XXX_BAR2L[LBAB].
+
+ Internal:
+ From PCC's tie__pfbar2_offset. */
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_vsec_bar2l_s cn; */
+};
+typedef union bdk_pccpf_xxx_vsec_bar2l bdk_pccpf_xxx_vsec_bar2l_t;
+
+#define BDK_PCCPF_XXX_VSEC_BAR2L BDK_PCCPF_XXX_VSEC_BAR2L_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_VSEC_BAR2L_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_VSEC_BAR2L_FUNC(void)
+{
+ if (CAVIUM_IS_MODEL(CAVIUM_CN81XX))
+ return 0x118;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN83XX))
+ return 0x118;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN88XX))
+ return 0x120;
+ __bdk_csr_fatal("PCCPF_XXX_VSEC_BAR2L", 0, 0, 0, 0, 0);
+}
+
+#define typedef_BDK_PCCPF_XXX_VSEC_BAR2L bdk_pccpf_xxx_vsec_bar2l_t
+#define bustype_BDK_PCCPF_XXX_VSEC_BAR2L BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_VSEC_BAR2L "PCCPF_XXX_VSEC_BAR2L"
+#define busnum_BDK_PCCPF_XXX_VSEC_BAR2L 0
+#define arguments_BDK_PCCPF_XXX_VSEC_BAR2L -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_vsec_bar2u
+ *
+ * PCC PF Vendor-Specific Address 2 Upper Register
+ */
+union bdk_pccpf_xxx_vsec_bar2u
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_vsec_bar2u_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t ubab : 32; /**< [ 31: 0](RO) Upper bits of the hard-coded BAR 2 base address; the reset value for
+ PCCPF_XXX_BAR2U[UBAB].
+
+ Internal:
+ From PCC's tie__pfbar2_offset. */
+#else /* Word 0 - Little Endian */
+ uint32_t ubab : 32; /**< [ 31: 0](RO) Upper bits of the hard-coded BAR 2 base address; the reset value for
+ PCCPF_XXX_BAR2U[UBAB].
+
+ Internal:
+ From PCC's tie__pfbar2_offset. */
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_vsec_bar2u_s cn; */
+};
+typedef union bdk_pccpf_xxx_vsec_bar2u bdk_pccpf_xxx_vsec_bar2u_t;
+
+#define BDK_PCCPF_XXX_VSEC_BAR2U BDK_PCCPF_XXX_VSEC_BAR2U_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_VSEC_BAR2U_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_VSEC_BAR2U_FUNC(void)
+{
+ if (CAVIUM_IS_MODEL(CAVIUM_CN81XX))
+ return 0x11c;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN83XX))
+ return 0x11c;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN88XX))
+ return 0x124;
+ __bdk_csr_fatal("PCCPF_XXX_VSEC_BAR2U", 0, 0, 0, 0, 0);
+}
+
+#define typedef_BDK_PCCPF_XXX_VSEC_BAR2U bdk_pccpf_xxx_vsec_bar2u_t
+#define bustype_BDK_PCCPF_XXX_VSEC_BAR2U BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_VSEC_BAR2U "PCCPF_XXX_VSEC_BAR2U"
+#define busnum_BDK_PCCPF_XXX_VSEC_BAR2U 0
+#define arguments_BDK_PCCPF_XXX_VSEC_BAR2U -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_vsec_bar4l
+ *
+ * PCC PF Vendor-Specific Address 4 Lower Register
+ */
+union bdk_pccpf_xxx_vsec_bar4l
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_vsec_bar4l_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t lbab : 16; /**< [ 31: 16](RO) Lower bits of the hard-coded BAR 4 base address; the reset value for
+ PCCPF_XXX_BAR4L[LBAB].
+
+ Internal:
+ From PCC's tie__pfbar4_offset. */
+ uint32_t reserved_0_15 : 16;
+#else /* Word 0 - Little Endian */
+ uint32_t reserved_0_15 : 16;
+ uint32_t lbab : 16; /**< [ 31: 16](RO) Lower bits of the hard-coded BAR 4 base address; the reset value for
+ PCCPF_XXX_BAR4L[LBAB].
+
+ Internal:
+ From PCC's tie__pfbar4_offset. */
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_vsec_bar4l_s cn; */
+};
+typedef union bdk_pccpf_xxx_vsec_bar4l bdk_pccpf_xxx_vsec_bar4l_t;
+
+#define BDK_PCCPF_XXX_VSEC_BAR4L BDK_PCCPF_XXX_VSEC_BAR4L_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_VSEC_BAR4L_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_VSEC_BAR4L_FUNC(void)
+{
+ if (CAVIUM_IS_MODEL(CAVIUM_CN81XX))
+ return 0x120;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN83XX))
+ return 0x120;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN88XX))
+ return 0x128;
+ __bdk_csr_fatal("PCCPF_XXX_VSEC_BAR4L", 0, 0, 0, 0, 0);
+}
+
+#define typedef_BDK_PCCPF_XXX_VSEC_BAR4L bdk_pccpf_xxx_vsec_bar4l_t
+#define bustype_BDK_PCCPF_XXX_VSEC_BAR4L BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_VSEC_BAR4L "PCCPF_XXX_VSEC_BAR4L"
+#define busnum_BDK_PCCPF_XXX_VSEC_BAR4L 0
+#define arguments_BDK_PCCPF_XXX_VSEC_BAR4L -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_vsec_bar4u
+ *
+ * PCC PF Vendor-Specific Address 4 Upper Register
+ */
+union bdk_pccpf_xxx_vsec_bar4u
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_vsec_bar4u_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t ubab : 32; /**< [ 31: 0](RO) Upper bits of the hard-coded BAR 4 base address; the reset value for
+ PCCPF_XXX_BAR4U[UBAB].
+
+ Internal:
+ From PCC's tie__pfbar4_offset. */
+#else /* Word 0 - Little Endian */
+ uint32_t ubab : 32; /**< [ 31: 0](RO) Upper bits of the hard-coded BAR 4 base address; the reset value for
+ PCCPF_XXX_BAR4U[UBAB].
+
+ Internal:
+ From PCC's tie__pfbar4_offset. */
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_vsec_bar4u_s cn; */
+};
+typedef union bdk_pccpf_xxx_vsec_bar4u bdk_pccpf_xxx_vsec_bar4u_t;
+
+#define BDK_PCCPF_XXX_VSEC_BAR4U BDK_PCCPF_XXX_VSEC_BAR4U_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_VSEC_BAR4U_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_VSEC_BAR4U_FUNC(void)
+{
+ if (CAVIUM_IS_MODEL(CAVIUM_CN81XX))
+ return 0x124;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN83XX))
+ return 0x124;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN88XX))
+ return 0x12c;
+ __bdk_csr_fatal("PCCPF_XXX_VSEC_BAR4U", 0, 0, 0, 0, 0);
+}
+
+#define typedef_BDK_PCCPF_XXX_VSEC_BAR4U bdk_pccpf_xxx_vsec_bar4u_t
+#define bustype_BDK_PCCPF_XXX_VSEC_BAR4U BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_VSEC_BAR4U "PCCPF_XXX_VSEC_BAR4U"
+#define busnum_BDK_PCCPF_XXX_VSEC_BAR4U 0
+#define arguments_BDK_PCCPF_XXX_VSEC_BAR4U -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_vsec_cap_hdr
+ *
+ * PCC PF Vendor-Specific Capability Header Register
+ * This register is the header of the 64-byte {ProductLine} family PF capability
+ * structure.
+ */
+union bdk_pccpf_xxx_vsec_cap_hdr
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_vsec_cap_hdr_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t nco : 12; /**< [ 31: 20](RO) Next capability offset. If SR-IOV is supported as per PCC_DEV_IDL_E, points to the
+ PCCPF_XXX_SRIOV_CAP_HDR, else 0x0. */
+ uint32_t cv : 4; /**< [ 19: 16](RO) Capability version. */
+ uint32_t vsecid : 16; /**< [ 15: 0](RO) PCIE extended capability. Indicates vendor-specific capability. */
+#else /* Word 0 - Little Endian */
+ uint32_t vsecid : 16; /**< [ 15: 0](RO) PCIE extended capability. Indicates vendor-specific capability. */
+ uint32_t cv : 4; /**< [ 19: 16](RO) Capability version. */
+ uint32_t nco : 12; /**< [ 31: 20](RO) Next capability offset. If SR-IOV is supported as per PCC_DEV_IDL_E, points to the
+ PCCPF_XXX_SRIOV_CAP_HDR, else 0x0. */
+#endif /* Word 0 - End */
+ } s;
+ struct bdk_pccpf_xxx_vsec_cap_hdr_cn9
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t nco : 12; /**< [ 31: 20](RO) Next capability offset. Points to PCCPF_XXX_AER_CAP_HDR. */
+ uint32_t cv : 4; /**< [ 19: 16](RO) Capability version. */
+ uint32_t vsecid : 16; /**< [ 15: 0](RO) PCIE extended capability. Indicates vendor-specific capability. */
+#else /* Word 0 - Little Endian */
+ uint32_t vsecid : 16; /**< [ 15: 0](RO) PCIE extended capability. Indicates vendor-specific capability. */
+ uint32_t cv : 4; /**< [ 19: 16](RO) Capability version. */
+ uint32_t nco : 12; /**< [ 31: 20](RO) Next capability offset. Points to PCCPF_XXX_AER_CAP_HDR. */
+#endif /* Word 0 - End */
+ } cn9;
+ struct bdk_pccpf_xxx_vsec_cap_hdr_cn81xx
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t nco : 12; /**< [ 31: 20](RO) Next capability offset. If this device is on a nonzero bus, points to
+ PCCPF_XXX_ARI_CAP_HDR, else 0x0. */
+ uint32_t cv : 4; /**< [ 19: 16](RO) Capability version. */
+ uint32_t vsecid : 16; /**< [ 15: 0](RO) PCIE extended capability. Indicates vendor-specific capability. */
+#else /* Word 0 - Little Endian */
+ uint32_t vsecid : 16; /**< [ 15: 0](RO) PCIE extended capability. Indicates vendor-specific capability. */
+ uint32_t cv : 4; /**< [ 19: 16](RO) Capability version. */
+ uint32_t nco : 12; /**< [ 31: 20](RO) Next capability offset. If this device is on a nonzero bus, points to
+ PCCPF_XXX_ARI_CAP_HDR, else 0x0. */
+#endif /* Word 0 - End */
+ } cn81xx;
+ /* struct bdk_pccpf_xxx_vsec_cap_hdr_s cn88xx; */
+ /* struct bdk_pccpf_xxx_vsec_cap_hdr_cn81xx cn83xx; */
+};
+typedef union bdk_pccpf_xxx_vsec_cap_hdr bdk_pccpf_xxx_vsec_cap_hdr_t;
+
+#define BDK_PCCPF_XXX_VSEC_CAP_HDR BDK_PCCPF_XXX_VSEC_CAP_HDR_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_VSEC_CAP_HDR_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_VSEC_CAP_HDR_FUNC(void)
+{
+ if (CAVIUM_IS_MODEL(CAVIUM_CN81XX))
+ return 0x100;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN83XX))
+ return 0x100;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN88XX))
+ return 0x108;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX))
+ return 0x100;
+ __bdk_csr_fatal("PCCPF_XXX_VSEC_CAP_HDR", 0, 0, 0, 0, 0);
+}
+
+#define typedef_BDK_PCCPF_XXX_VSEC_CAP_HDR bdk_pccpf_xxx_vsec_cap_hdr_t
+#define bustype_BDK_PCCPF_XXX_VSEC_CAP_HDR BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_VSEC_CAP_HDR "PCCPF_XXX_VSEC_CAP_HDR"
+#define busnum_BDK_PCCPF_XXX_VSEC_CAP_HDR 0
+#define arguments_BDK_PCCPF_XXX_VSEC_CAP_HDR -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_vsec_ctl
+ *
+ * PCC PF Vendor-Specific Control Register
+ * This register is reset on a chip domain reset.
+ */
+union bdk_pccpf_xxx_vsec_ctl
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_vsec_ctl_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t nxtfn_ns : 8; /**< [ 31: 24](R/W) For nonsecure accesses, the value to be presented in PCCPF_XXX_(S)ARI_NXT[NXTFN]
+ indicating the next valid function number for this device.
+ Must be kept as 0x0 for non-MRML PCC devices. */
+ uint32_t reserved_12_23 : 12;
+ uint32_t cor_intn : 1; /**< [ 11: 11](R/W1S/H) Corrected internal error. Writing a one to this bit sets
+ PCCPF_XXX_AER_COR_STATUS[COR_INTN].
+ This is a self-clearing bit and always reads as zero. */
+ uint32_t adv_nfat : 1; /**< [ 10: 10](R/W1S/H) Advisory non-fatal error. Writing a one to this bit sets
+ PCCPF_XXX_AER_COR_STATUS[ADV_NFAT].
+ This is a self-clearing bit and always reads as zero. */
+ uint32_t uncor_intn : 1; /**< [ 9: 9](R/W1S/H) Poisoned TLP received. Writing a one to this bit sets
+ PCCPF_XXX_AER_UNCOR_STATUS[UNCOR_INTN]. This is a self-clearing bit and always
+ reads as zero. */
+ uint32_t poison_tlp : 1; /**< [ 8: 8](R/W1S/H) Poisoned TLP received. Writing a one to this bit sets
+ PCCPF_XXX_AER_UNCOR_STATUS[POISON_TLP]. This is a self-clearing bit and always
+ reads as zero. */
+ uint32_t inst_num : 8; /**< [ 7: 0](RO) Instance number. For blocks with multiple instances, indicates which instance number,
+ otherwise 0x0; may be used to form Linux device numbers. For example for UART(1) is 0x1. */
+#else /* Word 0 - Little Endian */
+ uint32_t inst_num : 8; /**< [ 7: 0](RO) Instance number. For blocks with multiple instances, indicates which instance number,
+ otherwise 0x0; may be used to form Linux device numbers. For example for UART(1) is 0x1. */
+ uint32_t poison_tlp : 1; /**< [ 8: 8](R/W1S/H) Poisoned TLP received. Writing a one to this bit sets
+ PCCPF_XXX_AER_UNCOR_STATUS[POISON_TLP]. This is a self-clearing bit and always
+ reads as zero. */
+ uint32_t uncor_intn : 1; /**< [ 9: 9](R/W1S/H) Poisoned TLP received. Writing a one to this bit sets
+ PCCPF_XXX_AER_UNCOR_STATUS[UNCOR_INTN]. This is a self-clearing bit and always
+ reads as zero. */
+ uint32_t adv_nfat : 1; /**< [ 10: 10](R/W1S/H) Advisory non-fatal error. Writing a one to this bit sets
+ PCCPF_XXX_AER_COR_STATUS[ADV_NFAT].
+ This is a self-clearing bit and always reads as zero. */
+ uint32_t cor_intn : 1; /**< [ 11: 11](R/W1S/H) Corrected internal error. Writing a one to this bit sets
+ PCCPF_XXX_AER_COR_STATUS[COR_INTN].
+ This is a self-clearing bit and always reads as zero. */
+ uint32_t reserved_12_23 : 12;
+ uint32_t nxtfn_ns : 8; /**< [ 31: 24](R/W) For nonsecure accesses, the value to be presented in PCCPF_XXX_(S)ARI_NXT[NXTFN]
+ indicating the next valid function number for this device.
+ Must be kept as 0x0 for non-MRML PCC devices. */
+#endif /* Word 0 - End */
+ } s;
+ struct bdk_pccpf_xxx_vsec_ctl_cn8
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t nxtfn_ns : 8; /**< [ 31: 24](R/W) For nonsecure accesses, the value to be presented in PCCPF_XXX_(S)ARI_NXT[NXTFN]
+ indicating the next valid function number for this device.
+ Must be kept as 0x0 for non-MRML PCC devices. */
+ uint32_t reserved_8_23 : 16;
+ uint32_t inst_num : 8; /**< [ 7: 0](RO) Instance number. For blocks with multiple instances, indicates which instance number,
+ otherwise 0x0; may be used to form Linux device numbers. For example for UART(1) is 0x1. */
+#else /* Word 0 - Little Endian */
+ uint32_t inst_num : 8; /**< [ 7: 0](RO) Instance number. For blocks with multiple instances, indicates which instance number,
+ otherwise 0x0; may be used to form Linux device numbers. For example for UART(1) is 0x1. */
+ uint32_t reserved_8_23 : 16;
+ uint32_t nxtfn_ns : 8; /**< [ 31: 24](R/W) For nonsecure accesses, the value to be presented in PCCPF_XXX_(S)ARI_NXT[NXTFN]
+ indicating the next valid function number for this device.
+ Must be kept as 0x0 for non-MRML PCC devices. */
+#endif /* Word 0 - End */
+ } cn8;
+ /* struct bdk_pccpf_xxx_vsec_ctl_s cn9; */
+};
+typedef union bdk_pccpf_xxx_vsec_ctl bdk_pccpf_xxx_vsec_ctl_t;
+
+#define BDK_PCCPF_XXX_VSEC_CTL BDK_PCCPF_XXX_VSEC_CTL_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_VSEC_CTL_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_VSEC_CTL_FUNC(void)
+{
+ if (CAVIUM_IS_MODEL(CAVIUM_CN81XX))
+ return 0x108;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN83XX))
+ return 0x108;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN88XX))
+ return 0x110;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX))
+ return 0x108;
+ __bdk_csr_fatal("PCCPF_XXX_VSEC_CTL", 0, 0, 0, 0, 0);
+}
+
+#define typedef_BDK_PCCPF_XXX_VSEC_CTL bdk_pccpf_xxx_vsec_ctl_t
+#define bustype_BDK_PCCPF_XXX_VSEC_CTL BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_VSEC_CTL "PCCPF_XXX_VSEC_CTL"
+#define busnum_BDK_PCCPF_XXX_VSEC_CTL 0
+#define arguments_BDK_PCCPF_XXX_VSEC_CTL -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_vsec_id
+ *
+ * PCC PF Vendor-Specific Identification Register
+ */
+union bdk_pccpf_xxx_vsec_id
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_vsec_id_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t len : 12; /**< [ 31: 20](RO) Number of bytes in the entire VSEC structure including PCCPF_XXX_VSEC_CAP_HDR. */
+ uint32_t rev : 4; /**< [ 19: 16](RO) Vendor-specific revision. */
+ uint32_t id : 16; /**< [ 15: 0](RO) Vendor-specific ID. Indicates the {ProductLine} family VSEC ID. */
+#else /* Word 0 - Little Endian */
+ uint32_t id : 16; /**< [ 15: 0](RO) Vendor-specific ID. Indicates the {ProductLine} family VSEC ID. */
+ uint32_t rev : 4; /**< [ 19: 16](RO) Vendor-specific revision. */
+ uint32_t len : 12; /**< [ 31: 20](RO) Number of bytes in the entire VSEC structure including PCCPF_XXX_VSEC_CAP_HDR. */
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_vsec_id_s cn8; */
+ struct bdk_pccpf_xxx_vsec_id_cn9
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t len : 12; /**< [ 31: 20](RO) Number of bytes in the entire VSEC structure including PCCPF_XXX_VSEC_CAP_HDR. */
+ uint32_t rev : 4; /**< [ 19: 16](RO) Vendor-specific revision. */
+ uint32_t id : 16; /**< [ 15: 0](RO) Vendor-specific ID. Indicates the {ProductLine} family PF VSEC ID.
+ Enumerated by PCC_VSECID_E. */
+#else /* Word 0 - Little Endian */
+ uint32_t id : 16; /**< [ 15: 0](RO) Vendor-specific ID. Indicates the {ProductLine} family PF VSEC ID.
+ Enumerated by PCC_VSECID_E. */
+ uint32_t rev : 4; /**< [ 19: 16](RO) Vendor-specific revision. */
+ uint32_t len : 12; /**< [ 31: 20](RO) Number of bytes in the entire VSEC structure including PCCPF_XXX_VSEC_CAP_HDR. */
+#endif /* Word 0 - End */
+ } cn9;
+};
+typedef union bdk_pccpf_xxx_vsec_id bdk_pccpf_xxx_vsec_id_t;
+
+#define BDK_PCCPF_XXX_VSEC_ID BDK_PCCPF_XXX_VSEC_ID_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_VSEC_ID_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_VSEC_ID_FUNC(void)
+{
+ if (CAVIUM_IS_MODEL(CAVIUM_CN81XX))
+ return 0x104;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN83XX))
+ return 0x104;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN88XX))
+ return 0x10c;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX))
+ return 0x104;
+ __bdk_csr_fatal("PCCPF_XXX_VSEC_ID", 0, 0, 0, 0, 0);
+}
+
+#define typedef_BDK_PCCPF_XXX_VSEC_ID bdk_pccpf_xxx_vsec_id_t
+#define bustype_BDK_PCCPF_XXX_VSEC_ID BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_VSEC_ID "PCCPF_XXX_VSEC_ID"
+#define busnum_BDK_PCCPF_XXX_VSEC_ID 0
+#define arguments_BDK_PCCPF_XXX_VSEC_ID -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_vsec_sctl
+ *
+ * PCC PF Vendor-Specific Secure Control Register
+ * This register is reset on a chip domain reset.
+ */
+union bdk_pccpf_xxx_vsec_sctl
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_vsec_sctl_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t nxtfn_s : 8; /**< [ 31: 24](SR/W) For secure accesses, the value to be presented in PCCPF_XXX_(S)ARI_NXT[NXTFN] indicating
+ the next valid function number for this device. Must be 0x0 for non-MRML PCC
+ devices. */
+ uint32_t rid : 8; /**< [ 23: 16](SR/W) Revision ID. R/W version of the value to be presented in PCCPF_XXX_REV[RID]. */
+ uint32_t msix_sec_phys : 1; /**< [ 15: 15](SR/W) MSI-X secure physical:
+ _ 0 = Any MSI-X vectors with SECVEC = 1 use the same physical setting as
+ nonsecure vectors, i.e. [MSIX_PHYS].
+ _ 1 = Any MSI-X vectors with SECVEC = 1 are considered physical, regardless
+ of [MSIX_PHYS]. */
+ uint32_t reserved_12_14 : 3;
+ uint32_t gia_timeout : 6; /**< [ 11: 6](SR/W) GIA timeout (2^[GIA_TIMEOUT] clock cycles). Timeout for MSI-X commits. When zero, wait
+ for commits is disabled. */
+ uint32_t node : 2; /**< [ 5: 4](SRO) Reserved. */
+ uint32_t ea : 1; /**< [ 3: 3](SRO) Reserved. */
+ uint32_t reserved_2 : 1;
+ uint32_t msix_sec : 1; /**< [ 1: 1](SR/W) All MSI-X interrupts are secure. This is equivelent to setting the per-vector secure bit
+ (e.g. GTI_MSIX_VEC()_ADDR[SECVEC]) for all vectors in the block. */
+ uint32_t msix_phys : 1; /**< [ 0: 0](SR/W) MSI-X interrupts are physical.
+ 0 = MSI-X interrupt vector addresses are standard virtual addresses and subject to SMMU
+ address translation.
+ 1 = MSI-X interrupt vector addresses are considered physical addresses and PCC MSI-X
+ interrupt delivery will bypass the SMMU. */
+#else /* Word 0 - Little Endian */
+ uint32_t msix_phys : 1; /**< [ 0: 0](SR/W) MSI-X interrupts are physical.
+ 0 = MSI-X interrupt vector addresses are standard virtual addresses and subject to SMMU
+ address translation.
+ 1 = MSI-X interrupt vector addresses are considered physical addresses and PCC MSI-X
+ interrupt delivery will bypass the SMMU. */
+ uint32_t msix_sec : 1; /**< [ 1: 1](SR/W) All MSI-X interrupts are secure. This is equivelent to setting the per-vector secure bit
+ (e.g. GTI_MSIX_VEC()_ADDR[SECVEC]) for all vectors in the block. */
+ uint32_t reserved_2 : 1;
+ uint32_t ea : 1; /**< [ 3: 3](SRO) Reserved. */
+ uint32_t node : 2; /**< [ 5: 4](SRO) Reserved. */
+ uint32_t gia_timeout : 6; /**< [ 11: 6](SR/W) GIA timeout (2^[GIA_TIMEOUT] clock cycles). Timeout for MSI-X commits. When zero, wait
+ for commits is disabled. */
+ uint32_t reserved_12_14 : 3;
+ uint32_t msix_sec_phys : 1; /**< [ 15: 15](SR/W) MSI-X secure physical:
+ _ 0 = Any MSI-X vectors with SECVEC = 1 use the same physical setting as
+ nonsecure vectors, i.e. [MSIX_PHYS].
+ _ 1 = Any MSI-X vectors with SECVEC = 1 are considered physical, regardless
+ of [MSIX_PHYS]. */
+ uint32_t rid : 8; /**< [ 23: 16](SR/W) Revision ID. R/W version of the value to be presented in PCCPF_XXX_REV[RID]. */
+ uint32_t nxtfn_s : 8; /**< [ 31: 24](SR/W) For secure accesses, the value to be presented in PCCPF_XXX_(S)ARI_NXT[NXTFN] indicating
+ the next valid function number for this device. Must be 0x0 for non-MRML PCC
+ devices. */
+#endif /* Word 0 - End */
+ } s;
+ struct bdk_pccpf_xxx_vsec_sctl_cn88xxp1
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t nxtfn_s : 8; /**< [ 31: 24](SR/W) For secure accesses, the value to be presented in PCCPF_XXX_(S)ARI_NXT[NXTFN] indicating
+ the next valid function number for this device. Must be 0x0 for non-MRML PCC
+ devices. */
+ uint32_t rid : 8; /**< [ 23: 16](SR/W) Revision ID. R/W version of the value to be presented in PCCPF_XXX_REV[RID]. */
+ uint32_t reserved_6_15 : 10;
+ uint32_t node : 2; /**< [ 5: 4](SRO) Reserved. */
+ uint32_t ea : 1; /**< [ 3: 3](SRO) Reserved. */
+ uint32_t bcst_rsp : 1; /**< [ 2: 2](SR/W) Reserved, must be 0.
+ Internal:
+ Reserved for future use - Enable this PCC
+ instance as the responder to PCC broadcast reads/writes. */
+ uint32_t msix_sec : 1; /**< [ 1: 1](SR/W) All MSI-X interrupts are secure. This is equivelent to setting the per-vector secure bit
+ (e.g. GTI_MSIX_VEC()_ADDR[SECVEC]) for all vectors in the block. */
+ uint32_t msix_phys : 1; /**< [ 0: 0](SR/W) MSI-X interrupts are physical.
+ 0 = MSI-X interrupt vector addresses are standard virtual addresses and subject to SMMU
+ address translation.
+ 1 = MSI-X interrupt vector addresses are considered physical addresses and PCC MSI-X
+ interrupt delivery will bypass the SMMU. */
+#else /* Word 0 - Little Endian */
+ uint32_t msix_phys : 1; /**< [ 0: 0](SR/W) MSI-X interrupts are physical.
+ 0 = MSI-X interrupt vector addresses are standard virtual addresses and subject to SMMU
+ address translation.
+ 1 = MSI-X interrupt vector addresses are considered physical addresses and PCC MSI-X
+ interrupt delivery will bypass the SMMU. */
+ uint32_t msix_sec : 1; /**< [ 1: 1](SR/W) All MSI-X interrupts are secure. This is equivelent to setting the per-vector secure bit
+ (e.g. GTI_MSIX_VEC()_ADDR[SECVEC]) for all vectors in the block. */
+ uint32_t bcst_rsp : 1; /**< [ 2: 2](SR/W) Reserved, must be 0.
+ Internal:
+ Reserved for future use - Enable this PCC
+ instance as the responder to PCC broadcast reads/writes. */
+ uint32_t ea : 1; /**< [ 3: 3](SRO) Reserved. */
+ uint32_t node : 2; /**< [ 5: 4](SRO) Reserved. */
+ uint32_t reserved_6_15 : 10;
+ uint32_t rid : 8; /**< [ 23: 16](SR/W) Revision ID. R/W version of the value to be presented in PCCPF_XXX_REV[RID]. */
+ uint32_t nxtfn_s : 8; /**< [ 31: 24](SR/W) For secure accesses, the value to be presented in PCCPF_XXX_(S)ARI_NXT[NXTFN] indicating
+ the next valid function number for this device. Must be 0x0 for non-MRML PCC
+ devices. */
+#endif /* Word 0 - End */
+ } cn88xxp1;
+ struct bdk_pccpf_xxx_vsec_sctl_cn9
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t nxtfn_s : 8; /**< [ 31: 24](SR/W) For secure accesses, the value to be presented in PCCPF_XXX_(S)ARI_NXT[NXTFN] indicating
+ the next valid function number for this device. Must be 0x0 for non-MRML PCC
+ devices. */
+ uint32_t rid : 8; /**< [ 23: 16](SR/W) Revision ID. R/W version of the value to be presented in PCCPF_XXX_REV[RID]. */
+ uint32_t msix_sec_phys : 1; /**< [ 15: 15](SR/W) MSI-X secure physical:
+ _ 0 = Any MSI-X vectors with SECVEC = 1 use the same physical setting as
+ nonsecure vectors, i.e. [MSIX_PHYS].
+ _ 1 = Any MSI-X vectors with SECVEC = 1 are considered physical, regardless
+ of [MSIX_PHYS]. */
+ uint32_t reserved_12_14 : 3;
+ uint32_t gia_timeout : 6; /**< [ 11: 6](SR/W) GIA timeout (2^[GIA_TIMEOUT] clock cycles). Timeout for MSI-X commits. When zero, wait
+ for commits is disabled. */
+ uint32_t node : 2; /**< [ 5: 4](SR/W) Node number. */
+ uint32_t ea : 1; /**< [ 3: 3](SRO) Enable PCI enhanced allocation. Always set.
+
+ Addresses are discovered using enhanced allocation and PCCPF_XXX_EA_ENTRY().
+ Standard BARs are read-only zero (PCCPF_XXX_BAR0L, PCCPF_XXX_BAR0U,
+ PCCPF_XXX_BAR2L, PCCPF_XXX_BAR2U, PCCPF_XXX_BAR4L, PCCPF_XXX_BAR4U,
+ PCCPF_XXX_SRIOV_BAR0L, PCCPF_XXX_SRIOV_BAR0U, PCCPF_XXX_SRIOV_BAR2L,
+ PCCPF_XXX_SRIOV_BAR2U, PCCPF_XXX_SRIOV_BAR4L, PCCPF_XXX_SRIOV_BAR4U). */
+ uint32_t msix_sec_en : 1; /**< [ 2: 2](SR/W) MSI-X secure enable:
+ _ 0 = Any MSI-X vectors with SECVEC = 1, or all vectors if [MSIX_SEC], use
+ the same enable settings as nonsecure vectors based on normal PCIe
+ rules, i.e. are enabled when PCCPF_XXX_MSIX_CAP_HDR[MSIXEN]=1 and
+ unmasked when PCCPF_XXX_MSIX_CAP_HDR[FUNM]=0 and PCCPF_XXX_CMD[ME]=1.
+ _ 1 = Any MSI-X vectors with SECVEC = 1, or all vectors if [MSIX_SEC], will
+ act as if PCCPF_XXX_MSIX_CAP_HDR[MSIXEN]=1, PCCPF_XXX_MSIX_CAP_HDR[FUNM]=0
+ and PCCPF_XXX_CMD[ME]=1,
+ regardless of the true setting of those bits. Nonsecure vectors are
+ unaffected. Blocks that have both secure and nonsecure vectors in use
+ simultaneously may want to use this setting to prevent the nonsecure world
+ from globally disabling secure interrupts. */
+ uint32_t msix_sec : 1; /**< [ 1: 1](SR/W) All MSI-X interrupts are secure. This is equivelent to setting the per-vector secure bit
+ (e.g. GTI_MSIX_VEC()_ADDR[SECVEC]) for all vectors in the block. */
+ uint32_t msix_phys : 1; /**< [ 0: 0](SR/W) MSI-X interrupts are physical.
+ 0 = MSI-X interrupt vector addresses are standard virtual addresses and subject to SMMU
+ address translation.
+ 1 = MSI-X interrupt vector addresses are considered physical addresses and PCC MSI-X
+ interrupt delivery will bypass the SMMU. */
+#else /* Word 0 - Little Endian */
+ uint32_t msix_phys : 1; /**< [ 0: 0](SR/W) MSI-X interrupts are physical.
+ 0 = MSI-X interrupt vector addresses are standard virtual addresses and subject to SMMU
+ address translation.
+ 1 = MSI-X interrupt vector addresses are considered physical addresses and PCC MSI-X
+ interrupt delivery will bypass the SMMU. */
+ uint32_t msix_sec : 1; /**< [ 1: 1](SR/W) All MSI-X interrupts are secure. This is equivelent to setting the per-vector secure bit
+ (e.g. GTI_MSIX_VEC()_ADDR[SECVEC]) for all vectors in the block. */
+ uint32_t msix_sec_en : 1; /**< [ 2: 2](SR/W) MSI-X secure enable:
+ _ 0 = Any MSI-X vectors with SECVEC = 1, or all vectors if [MSIX_SEC], use
+ the same enable settings as nonsecure vectors based on normal PCIe
+ rules, i.e. are enabled when PCCPF_XXX_MSIX_CAP_HDR[MSIXEN]=1 and
+ unmasked when PCCPF_XXX_MSIX_CAP_HDR[FUNM]=0 and PCCPF_XXX_CMD[ME]=1.
+ _ 1 = Any MSI-X vectors with SECVEC = 1, or all vectors if [MSIX_SEC], will
+ act as if PCCPF_XXX_MSIX_CAP_HDR[MSIXEN]=1, PCCPF_XXX_MSIX_CAP_HDR[FUNM]=0
+ and PCCPF_XXX_CMD[ME]=1,
+ regardless of the true setting of those bits. Nonsecure vectors are
+ unaffected. Blocks that have both secure and nonsecure vectors in use
+ simultaneously may want to use this setting to prevent the nonsecure world
+ from globally disabling secure interrupts. */
+ uint32_t ea : 1; /**< [ 3: 3](SRO) Enable PCI enhanced allocation. Always set.
+
+ Addresses are discovered using enhanced allocation and PCCPF_XXX_EA_ENTRY().
+ Standard BARs are read-only zero (PCCPF_XXX_BAR0L, PCCPF_XXX_BAR0U,
+ PCCPF_XXX_BAR2L, PCCPF_XXX_BAR2U, PCCPF_XXX_BAR4L, PCCPF_XXX_BAR4U,
+ PCCPF_XXX_SRIOV_BAR0L, PCCPF_XXX_SRIOV_BAR0U, PCCPF_XXX_SRIOV_BAR2L,
+ PCCPF_XXX_SRIOV_BAR2U, PCCPF_XXX_SRIOV_BAR4L, PCCPF_XXX_SRIOV_BAR4U). */
+ uint32_t node : 2; /**< [ 5: 4](SR/W) Node number. */
+ uint32_t gia_timeout : 6; /**< [ 11: 6](SR/W) GIA timeout (2^[GIA_TIMEOUT] clock cycles). Timeout for MSI-X commits. When zero, wait
+ for commits is disabled. */
+ uint32_t reserved_12_14 : 3;
+ uint32_t msix_sec_phys : 1; /**< [ 15: 15](SR/W) MSI-X secure physical:
+ _ 0 = Any MSI-X vectors with SECVEC = 1 use the same physical setting as
+ nonsecure vectors, i.e. [MSIX_PHYS].
+ _ 1 = Any MSI-X vectors with SECVEC = 1 are considered physical, regardless
+ of [MSIX_PHYS]. */
+ uint32_t rid : 8; /**< [ 23: 16](SR/W) Revision ID. R/W version of the value to be presented in PCCPF_XXX_REV[RID]. */
+ uint32_t nxtfn_s : 8; /**< [ 31: 24](SR/W) For secure accesses, the value to be presented in PCCPF_XXX_(S)ARI_NXT[NXTFN] indicating
+ the next valid function number for this device. Must be 0x0 for non-MRML PCC
+ devices. */
+#endif /* Word 0 - End */
+ } cn9;
+ struct bdk_pccpf_xxx_vsec_sctl_cn81xx
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t nxtfn_s : 8; /**< [ 31: 24](SR/W) For secure accesses, the value to be presented in PCCPF_XXX_(S)ARI_NXT[NXTFN] indicating
+ the next valid function number for this device. Must be 0x0 for non-MRML PCC
+ devices. */
+ uint32_t rid : 8; /**< [ 23: 16](SR/W) Revision ID. R/W version of the value to be presented in PCCPF_XXX_REV[RID]. */
+ uint32_t reserved_6_15 : 10;
+ uint32_t node : 2; /**< [ 5: 4](SR/W/H) Node number. */
+ uint32_t ea : 1; /**< [ 3: 3](SR/W) Enable PCI enhanced allocation.
+
+ 0 = Addresses are discovered using standard BARs, however while the BARs are
+ writable the value is ignored. PCCPF_XXX_EA_ENTRY() still indicates the BARs
+ but software will not read them as PCCPF_XXX_EA_CAP_HDR is not linked into the
+ capabilities list (see PCCPF_XXX_E_CAP_HDR[NCP], PCCPF_XXX_MSIX_CAP_HDR[NCP]).
+
+ 1 = Addresses are discovered using enhanced allocation and PCCPF_XXX_EA_ENTRY().
+ Standard BARs are read-only zero (PCCPF_XXX_BAR0L, PCCPF_XXX_BAR0U,
+ PCCPF_XXX_BAR2L, PCCPF_XXX_BAR2U, PCCPF_XXX_BAR4L, PCCPF_XXX_BAR4U,
+ PCCPF_XXX_SRIOV_BAR0L, PCCPF_XXX_SRIOV_BAR0U, PCCPF_XXX_SRIOV_BAR2L,
+ PCCPF_XXX_SRIOV_BAR2U, PCCPF_XXX_SRIOV_BAR4L, PCCPF_XXX_SRIOV_BAR4U). */
+ uint32_t bcst_rsp : 1; /**< [ 2: 2](SR/W) Reserved, must be 0.
+ Internal:
+ Reserved for future use - Enable this PCC
+ instance as the responder to PCC broadcast reads/writes. */
+ uint32_t msix_sec : 1; /**< [ 1: 1](SR/W) All MSI-X interrupts are secure. This is equivelent to setting the per-vector secure bit
+ (e.g. GTI_MSIX_VEC()_ADDR[SECVEC]) for all vectors in the block. */
+ uint32_t msix_phys : 1; /**< [ 0: 0](SR/W) MSI-X interrupts are physical.
+ 0 = MSI-X interrupt vector addresses are standard virtual addresses and subject to SMMU
+ address translation.
+ 1 = MSI-X interrupt vector addresses are considered physical addresses and PCC MSI-X
+ interrupt delivery will bypass the SMMU. */
+#else /* Word 0 - Little Endian */
+ uint32_t msix_phys : 1; /**< [ 0: 0](SR/W) MSI-X interrupts are physical.
+ 0 = MSI-X interrupt vector addresses are standard virtual addresses and subject to SMMU
+ address translation.
+ 1 = MSI-X interrupt vector addresses are considered physical addresses and PCC MSI-X
+ interrupt delivery will bypass the SMMU. */
+ uint32_t msix_sec : 1; /**< [ 1: 1](SR/W) All MSI-X interrupts are secure. This is equivelent to setting the per-vector secure bit
+ (e.g. GTI_MSIX_VEC()_ADDR[SECVEC]) for all vectors in the block. */
+ uint32_t bcst_rsp : 1; /**< [ 2: 2](SR/W) Reserved, must be 0.
+ Internal:
+ Reserved for future use - Enable this PCC
+ instance as the responder to PCC broadcast reads/writes. */
+ uint32_t ea : 1; /**< [ 3: 3](SR/W) Enable PCI enhanced allocation.
+
+ 0 = Addresses are discovered using standard BARs, however while the BARs are
+ writable the value is ignored. PCCPF_XXX_EA_ENTRY() still indicates the BARs
+ but software will not read them as PCCPF_XXX_EA_CAP_HDR is not linked into the
+ capabilities list (see PCCPF_XXX_E_CAP_HDR[NCP], PCCPF_XXX_MSIX_CAP_HDR[NCP]).
+
+ 1 = Addresses are discovered using enhanced allocation and PCCPF_XXX_EA_ENTRY().
+ Standard BARs are read-only zero (PCCPF_XXX_BAR0L, PCCPF_XXX_BAR0U,
+ PCCPF_XXX_BAR2L, PCCPF_XXX_BAR2U, PCCPF_XXX_BAR4L, PCCPF_XXX_BAR4U,
+ PCCPF_XXX_SRIOV_BAR0L, PCCPF_XXX_SRIOV_BAR0U, PCCPF_XXX_SRIOV_BAR2L,
+ PCCPF_XXX_SRIOV_BAR2U, PCCPF_XXX_SRIOV_BAR4L, PCCPF_XXX_SRIOV_BAR4U). */
+ uint32_t node : 2; /**< [ 5: 4](SR/W/H) Node number. */
+ uint32_t reserved_6_15 : 10;
+ uint32_t rid : 8; /**< [ 23: 16](SR/W) Revision ID. R/W version of the value to be presented in PCCPF_XXX_REV[RID]. */
+ uint32_t nxtfn_s : 8; /**< [ 31: 24](SR/W) For secure accesses, the value to be presented in PCCPF_XXX_(S)ARI_NXT[NXTFN] indicating
+ the next valid function number for this device. Must be 0x0 for non-MRML PCC
+ devices. */
+#endif /* Word 0 - End */
+ } cn81xx;
+ /* struct bdk_pccpf_xxx_vsec_sctl_cn81xx cn83xx; */
+ /* struct bdk_pccpf_xxx_vsec_sctl_cn81xx cn88xxp2; */
+};
+typedef union bdk_pccpf_xxx_vsec_sctl bdk_pccpf_xxx_vsec_sctl_t;
+
+#define BDK_PCCPF_XXX_VSEC_SCTL BDK_PCCPF_XXX_VSEC_SCTL_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_VSEC_SCTL_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_VSEC_SCTL_FUNC(void)
+{
+ if (CAVIUM_IS_MODEL(CAVIUM_CN81XX))
+ return 0x10c;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN83XX))
+ return 0x10c;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN88XX))
+ return 0x114;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN9XXX))
+ return 0x10c;
+ __bdk_csr_fatal("PCCPF_XXX_VSEC_SCTL", 0, 0, 0, 0, 0);
+}
+
+#define typedef_BDK_PCCPF_XXX_VSEC_SCTL bdk_pccpf_xxx_vsec_sctl_t
+#define bustype_BDK_PCCPF_XXX_VSEC_SCTL BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_VSEC_SCTL "PCCPF_XXX_VSEC_SCTL"
+#define busnum_BDK_PCCPF_XXX_VSEC_SCTL 0
+#define arguments_BDK_PCCPF_XXX_VSEC_SCTL -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_vsec_sriov_bar0l
+ *
+ * PCC PF Vendor-Specific SR-IOV Address 0 Lower Register
+ */
+union bdk_pccpf_xxx_vsec_sriov_bar0l
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_vsec_sriov_bar0l_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t lbab : 16; /**< [ 31: 16](RO) Lower bits of the hard-coded SR-IOV BAR 0 base address; the reset value for
+ PCCPF_XXX_SRIOV_BAR0L[LBAB].
+
+ Internal:
+ From PCC's tie__vfbar0_offset. */
+ uint32_t reserved_0_15 : 16;
+#else /* Word 0 - Little Endian */
+ uint32_t reserved_0_15 : 16;
+ uint32_t lbab : 16; /**< [ 31: 16](RO) Lower bits of the hard-coded SR-IOV BAR 0 base address; the reset value for
+ PCCPF_XXX_SRIOV_BAR0L[LBAB].
+
+ Internal:
+ From PCC's tie__vfbar0_offset. */
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_vsec_sriov_bar0l_s cn; */
+};
+typedef union bdk_pccpf_xxx_vsec_sriov_bar0l bdk_pccpf_xxx_vsec_sriov_bar0l_t;
+
+#define BDK_PCCPF_XXX_VSEC_SRIOV_BAR0L BDK_PCCPF_XXX_VSEC_SRIOV_BAR0L_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_VSEC_SRIOV_BAR0L_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_VSEC_SRIOV_BAR0L_FUNC(void)
+{
+ if (CAVIUM_IS_MODEL(CAVIUM_CN81XX))
+ return 0x128;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN83XX))
+ return 0x128;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN88XX))
+ return 0x130;
+ __bdk_csr_fatal("PCCPF_XXX_VSEC_SRIOV_BAR0L", 0, 0, 0, 0, 0);
+}
+
+#define typedef_BDK_PCCPF_XXX_VSEC_SRIOV_BAR0L bdk_pccpf_xxx_vsec_sriov_bar0l_t
+#define bustype_BDK_PCCPF_XXX_VSEC_SRIOV_BAR0L BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_VSEC_SRIOV_BAR0L "PCCPF_XXX_VSEC_SRIOV_BAR0L"
+#define busnum_BDK_PCCPF_XXX_VSEC_SRIOV_BAR0L 0
+#define arguments_BDK_PCCPF_XXX_VSEC_SRIOV_BAR0L -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_vsec_sriov_bar0u
+ *
+ * PCC PF Vendor-Specific SR-IOV Address 0 Upper Register
+ */
+union bdk_pccpf_xxx_vsec_sriov_bar0u
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_vsec_sriov_bar0u_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t ubab : 32; /**< [ 31: 0](RO) Upper bits of the hard-coded SR-IOV BAR 0 base address; the reset value for
+ PCCPF_XXX_SRIOV_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__vfbar0_offset. */
+#else /* Word 0 - Little Endian */
+ uint32_t ubab : 32; /**< [ 31: 0](RO) Upper bits of the hard-coded SR-IOV BAR 0 base address; the reset value for
+ PCCPF_XXX_SRIOV_BAR0U[UBAB].
+
+ Internal:
+ From PCC's tie__vfbar0_offset. */
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_vsec_sriov_bar0u_s cn; */
+};
+typedef union bdk_pccpf_xxx_vsec_sriov_bar0u bdk_pccpf_xxx_vsec_sriov_bar0u_t;
+
+#define BDK_PCCPF_XXX_VSEC_SRIOV_BAR0U BDK_PCCPF_XXX_VSEC_SRIOV_BAR0U_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_VSEC_SRIOV_BAR0U_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_VSEC_SRIOV_BAR0U_FUNC(void)
+{
+ if (CAVIUM_IS_MODEL(CAVIUM_CN81XX))
+ return 0x12c;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN83XX))
+ return 0x12c;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN88XX))
+ return 0x134;
+ __bdk_csr_fatal("PCCPF_XXX_VSEC_SRIOV_BAR0U", 0, 0, 0, 0, 0);
+}
+
+#define typedef_BDK_PCCPF_XXX_VSEC_SRIOV_BAR0U bdk_pccpf_xxx_vsec_sriov_bar0u_t
+#define bustype_BDK_PCCPF_XXX_VSEC_SRIOV_BAR0U BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_VSEC_SRIOV_BAR0U "PCCPF_XXX_VSEC_SRIOV_BAR0U"
+#define busnum_BDK_PCCPF_XXX_VSEC_SRIOV_BAR0U 0
+#define arguments_BDK_PCCPF_XXX_VSEC_SRIOV_BAR0U -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_vsec_sriov_bar2l
+ *
+ * PCC PF Vendor-Specific SR-IOV Address 2 Lower Register
+ */
+union bdk_pccpf_xxx_vsec_sriov_bar2l
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_vsec_sriov_bar2l_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t lbab : 16; /**< [ 31: 16](RO) Lower bits of the hard-coded SR-IOV BAR 2 base address; the reset value for
+ PCCPF_XXX_SRIOV_BAR2L[LBAB].
+
+ Internal:
+ From PCC's tie__vfbar2_offset. */
+ uint32_t reserved_0_15 : 16;
+#else /* Word 0 - Little Endian */
+ uint32_t reserved_0_15 : 16;
+ uint32_t lbab : 16; /**< [ 31: 16](RO) Lower bits of the hard-coded SR-IOV BAR 2 base address; the reset value for
+ PCCPF_XXX_SRIOV_BAR2L[LBAB].
+
+ Internal:
+ From PCC's tie__vfbar2_offset. */
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_vsec_sriov_bar2l_s cn; */
+};
+typedef union bdk_pccpf_xxx_vsec_sriov_bar2l bdk_pccpf_xxx_vsec_sriov_bar2l_t;
+
+#define BDK_PCCPF_XXX_VSEC_SRIOV_BAR2L BDK_PCCPF_XXX_VSEC_SRIOV_BAR2L_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_VSEC_SRIOV_BAR2L_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_VSEC_SRIOV_BAR2L_FUNC(void)
+{
+ if (CAVIUM_IS_MODEL(CAVIUM_CN81XX))
+ return 0x130;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN83XX))
+ return 0x130;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN88XX))
+ return 0x138;
+ __bdk_csr_fatal("PCCPF_XXX_VSEC_SRIOV_BAR2L", 0, 0, 0, 0, 0);
+}
+
+#define typedef_BDK_PCCPF_XXX_VSEC_SRIOV_BAR2L bdk_pccpf_xxx_vsec_sriov_bar2l_t
+#define bustype_BDK_PCCPF_XXX_VSEC_SRIOV_BAR2L BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_VSEC_SRIOV_BAR2L "PCCPF_XXX_VSEC_SRIOV_BAR2L"
+#define busnum_BDK_PCCPF_XXX_VSEC_SRIOV_BAR2L 0
+#define arguments_BDK_PCCPF_XXX_VSEC_SRIOV_BAR2L -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_vsec_sriov_bar2u
+ *
+ * PCC PF Vendor-Specific SR-IOV Address 2 Upper Register
+ */
+union bdk_pccpf_xxx_vsec_sriov_bar2u
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_vsec_sriov_bar2u_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t ubab : 32; /**< [ 31: 0](RO) Upper bits of the hard-coded SR-IOV BAR 2 base address; the reset value for
+ PCCPF_XXX_SRIOV_BAR2U[UBAB].
+
+ Internal:
+ From PCC's tie__vfbar2_offset. */
+#else /* Word 0 - Little Endian */
+ uint32_t ubab : 32; /**< [ 31: 0](RO) Upper bits of the hard-coded SR-IOV BAR 2 base address; the reset value for
+ PCCPF_XXX_SRIOV_BAR2U[UBAB].
+
+ Internal:
+ From PCC's tie__vfbar2_offset. */
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_vsec_sriov_bar2u_s cn; */
+};
+typedef union bdk_pccpf_xxx_vsec_sriov_bar2u bdk_pccpf_xxx_vsec_sriov_bar2u_t;
+
+#define BDK_PCCPF_XXX_VSEC_SRIOV_BAR2U BDK_PCCPF_XXX_VSEC_SRIOV_BAR2U_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_VSEC_SRIOV_BAR2U_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_VSEC_SRIOV_BAR2U_FUNC(void)
+{
+ if (CAVIUM_IS_MODEL(CAVIUM_CN81XX))
+ return 0x134;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN83XX))
+ return 0x134;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN88XX))
+ return 0x13c;
+ __bdk_csr_fatal("PCCPF_XXX_VSEC_SRIOV_BAR2U", 0, 0, 0, 0, 0);
+}
+
+#define typedef_BDK_PCCPF_XXX_VSEC_SRIOV_BAR2U bdk_pccpf_xxx_vsec_sriov_bar2u_t
+#define bustype_BDK_PCCPF_XXX_VSEC_SRIOV_BAR2U BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_VSEC_SRIOV_BAR2U "PCCPF_XXX_VSEC_SRIOV_BAR2U"
+#define busnum_BDK_PCCPF_XXX_VSEC_SRIOV_BAR2U 0
+#define arguments_BDK_PCCPF_XXX_VSEC_SRIOV_BAR2U -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_vsec_sriov_bar4l
+ *
+ * PCC PF Vendor-Specific SR-IOV Address 4 Lower Register
+ */
+union bdk_pccpf_xxx_vsec_sriov_bar4l
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_vsec_sriov_bar4l_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t lbab : 16; /**< [ 31: 16](RO) Lower bits of the hard-coded SR-IOV BAR 4 base address; the reset value for
+ PCCPF_XXX_SRIOV_BAR4L[LBAB].
+
+ Internal:
+ From PCC's tie__vfbar4_offset. */
+ uint32_t reserved_0_15 : 16;
+#else /* Word 0 - Little Endian */
+ uint32_t reserved_0_15 : 16;
+ uint32_t lbab : 16; /**< [ 31: 16](RO) Lower bits of the hard-coded SR-IOV BAR 4 base address; the reset value for
+ PCCPF_XXX_SRIOV_BAR4L[LBAB].
+
+ Internal:
+ From PCC's tie__vfbar4_offset. */
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_vsec_sriov_bar4l_s cn; */
+};
+typedef union bdk_pccpf_xxx_vsec_sriov_bar4l bdk_pccpf_xxx_vsec_sriov_bar4l_t;
+
+#define BDK_PCCPF_XXX_VSEC_SRIOV_BAR4L BDK_PCCPF_XXX_VSEC_SRIOV_BAR4L_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_VSEC_SRIOV_BAR4L_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_VSEC_SRIOV_BAR4L_FUNC(void)
+{
+ if (CAVIUM_IS_MODEL(CAVIUM_CN81XX))
+ return 0x138;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN83XX))
+ return 0x138;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN88XX))
+ return 0x140;
+ __bdk_csr_fatal("PCCPF_XXX_VSEC_SRIOV_BAR4L", 0, 0, 0, 0, 0);
+}
+
+#define typedef_BDK_PCCPF_XXX_VSEC_SRIOV_BAR4L bdk_pccpf_xxx_vsec_sriov_bar4l_t
+#define bustype_BDK_PCCPF_XXX_VSEC_SRIOV_BAR4L BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_VSEC_SRIOV_BAR4L "PCCPF_XXX_VSEC_SRIOV_BAR4L"
+#define busnum_BDK_PCCPF_XXX_VSEC_SRIOV_BAR4L 0
+#define arguments_BDK_PCCPF_XXX_VSEC_SRIOV_BAR4L -1,-1,-1,-1
+
+/**
+ * Register (PCCPF) pccpf_xxx_vsec_sriov_bar4u
+ *
+ * PCC PF Vendor-Specific SR-IOV Address 4 Upper Register
+ */
+union bdk_pccpf_xxx_vsec_sriov_bar4u
+{
+ uint32_t u;
+ struct bdk_pccpf_xxx_vsec_sriov_bar4u_s
+ {
+#if __BYTE_ORDER == __BIG_ENDIAN /* Word 0 - Big Endian */
+ uint32_t ubab : 32; /**< [ 31: 0](RO) Upper bits of the hard-coded SR-IOV BAR 4 base address; the reset value for
+ PCCPF_XXX_SRIOV_BAR4U[UBAB].
+
+ Internal:
+ From PCC's tie__vfbar4_offset. */
+#else /* Word 0 - Little Endian */
+ uint32_t ubab : 32; /**< [ 31: 0](RO) Upper bits of the hard-coded SR-IOV BAR 4 base address; the reset value for
+ PCCPF_XXX_SRIOV_BAR4U[UBAB].
+
+ Internal:
+ From PCC's tie__vfbar4_offset. */
+#endif /* Word 0 - End */
+ } s;
+ /* struct bdk_pccpf_xxx_vsec_sriov_bar4u_s cn; */
+};
+typedef union bdk_pccpf_xxx_vsec_sriov_bar4u bdk_pccpf_xxx_vsec_sriov_bar4u_t;
+
+#define BDK_PCCPF_XXX_VSEC_SRIOV_BAR4U BDK_PCCPF_XXX_VSEC_SRIOV_BAR4U_FUNC()
+static inline uint64_t BDK_PCCPF_XXX_VSEC_SRIOV_BAR4U_FUNC(void) __attribute__ ((pure, always_inline));
+static inline uint64_t BDK_PCCPF_XXX_VSEC_SRIOV_BAR4U_FUNC(void)
+{
+ if (CAVIUM_IS_MODEL(CAVIUM_CN81XX))
+ return 0x13c;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN83XX))
+ return 0x13c;
+ if (CAVIUM_IS_MODEL(CAVIUM_CN88XX))
+ return 0x144;
+ __bdk_csr_fatal("PCCPF_XXX_VSEC_SRIOV_BAR4U", 0, 0, 0, 0, 0);
+}
+
+#define typedef_BDK_PCCPF_XXX_VSEC_SRIOV_BAR4U bdk_pccpf_xxx_vsec_sriov_bar4u_t
+#define bustype_BDK_PCCPF_XXX_VSEC_SRIOV_BAR4U BDK_CSR_TYPE_PCCPF
+#define basename_BDK_PCCPF_XXX_VSEC_SRIOV_BAR4U "PCCPF_XXX_VSEC_SRIOV_BAR4U"
+#define busnum_BDK_PCCPF_XXX_VSEC_SRIOV_BAR4U 0
+#define arguments_BDK_PCCPF_XXX_VSEC_SRIOV_BAR4U -1,-1,-1,-1
+
+#endif /* __BDK_CSRS_PCCPF_H__ */