1 /*
   2 * CDDL HEADER START
   3 *
   4 * The contents of this file are subject to the terms of the
   5 * Common Development and Distribution License, v.1,  (the "License").
   6 * You may not use this file except in compliance with the License.
   7 *
   8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9 * or http://opensource.org/licenses/CDDL-1.0.
  10 * See the License for the specific language governing permissions
  11 * and limitations under the License.
  12 *
  13 * When distributing Covered Code, include this CDDL HEADER in each
  14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15 * If applicable, add the following below this CDDL HEADER, with the
  16 * fields enclosed by brackets "[]" replaced with your own identifying
  17 * information: Portions Copyright [yyyy] [name of copyright owner]
  18 *
  19 * CDDL HEADER END
  20 */
  21 
  22 /*
  23 * Copyright 2014-2017 Cavium, Inc. 
  24 * The contents of this file are subject to the terms of the Common Development 
  25 * and Distribution License, v.1,  (the "License").
  26 
  27 * You may not use this file except in compliance with the License.
  28 
  29 * You can obtain a copy of the License at available 
  30 * at http://opensource.org/licenses/CDDL-1.0
  31 
  32 * See the License for the specific language governing permissions and 
  33 * limitations under the License.
  34 */
  35 
  36 /*
  37  *  mcp_fio definition
  38  *  offset: 0x80000000
  39  */
  40 #ifndef MCP_FIO_H
  41 #define MCP_FIO_H
  42 
  43 typedef struct mcp_fio
  44 {
  45     u32_t mcpf_events_bits;
  46         #define MCPF_EVENTS_BITS_BMB_WRITE_DONE             (1L<<0)
  47         #define MCPF_EVENTS_BITS_BMB_READ_RDY               (1L<<1)
  48         #define MCPF_EVENTS_BITS_P2M_ATTN                   (1L<<2)
  49         #define MCPF_EVENTS_BITS_SMBUS_EVENT                (1L<<3)
  50         #define MCPF_EVENTS_BITS_FLASH_EVENT                (1L<<4)
  51         #define MCPF_EVENTS_BITS_RESERVED0                  (1L<<5)
  52         #define MCPF_EVENTS_BITS_MAIN_TEMPERATURE_RESET     (1L<<6)
  53         #define MCPF_EVENTS_BITS_MGMT_TEMPERATURE_RESET     (1L<<7)
  54         #define MCPF_EVENTS_BITS_EXP_ROM                    (1L<<8)
  55         #define MCPF_EVENTS_BITS_VPD                        (1L<<9)
  56         #define MCPF_EVENTS_BITS_FLASH                      (1L<<10)
  57         #define MCPF_EVENTS_BITS_SMB0                       (1L<<11)
  58         #define MCPF_EVENTS_BITS_CNIG                       (1L<<12)
  59         #define MCPF_EVENTS_BITS_PGLUE_MISC_MCTP_ATTN       (1L<<13)
  60         #define MCPF_EVENTS_BITS_RESERVED1                  (1L<<14)
  61         #define MCPF_EVENTS_BITS_GPIO0                      (1L<<15)
  62         #define MCPF_EVENTS_BITS_GPIO1                      (1L<<16)
  63         #define MCPF_EVENTS_BITS_GPIO2                      (1L<<17)
  64         #define MCPF_EVENTS_BITS_GPIO3                      (1L<<18)
  65         #define MCPF_EVENTS_BITS_GPIO4                      (1L<<19)
  66         #define MCPF_EVENTS_BITS_GPIO5                      (1L<<20)
  67         #define MCPF_EVENTS_BITS_GPIO6                      (1L<<21)
  68         #define MCPF_EVENTS_BITS_GPIO7                      (1L<<22)
  69         #define MCPF_EVENTS_BITS_SW_TMR_1                   (1L<<23)
  70         #define MCPF_EVENTS_BITS_SW_TMR_2                   (1L<<24)
  71         #define MCPF_EVENTS_BITS_SW_TMR_3                   (1L<<25)
  72         #define MCPF_EVENTS_BITS_SW_TMR_4                   (1L<<26)
  73         #define MCPF_EVENTS_BITS_PERST_N_ASSERT             (1L<<27)
  74         #define MCPF_EVENTS_BITS_PERST_N_DEASSERT           (1L<<28)
  75         #define MCPF_EVENTS_BITS_GP_EVENT                   (1L<<29)
  76         #define MCPF_EVENTS_BITS_NOT_ENABLED                (1L<<30)
  77         #define MCPF_EVENTS_BITS_ATTENTIONS_VALID           (1L<<31)
  78 
  79     u32_t mcpf_attentions_bits;
  80         /* Added by Yaniv on 18/5/15. Can add additional interrupts by setting AEU to MCP output 0..7.
  81          * When adding new field, here, need to add also define to INUM_ATTENTION_XXX, and add new function to
  82          * mcp_attention_handler array in the INUM_ATTENTION_XXX location.
  83          */
  84         #define MCPF_ATTENTIONS_BITS_PARITY_ERROR           (1L<<0) 
  85         #define MCPF_ATTENTIONS_BITS_ATTN                   (0xffL<<0)
  86 
  87     u32_t mcpf_event_enable;
  88     u32_t mcpf_attention_enable;
  89     u32_t mcpf_fio_status;
  90         #define MCPF_FIO_STATUS_ENABLED                     (1L<<0)
  91         #define MCPF_FIO_STATUS_FORCE_ENA                   (1L<<1)
  92 
  93     u32_t mcpf_interrupt_status;
  94         #define MCPF_INTERRUPT_STATUS_EVENT0_E0             (1L<<0)
  95         #define MCPF_INTERRUPT_STATUS_ATTN0_E0              (1L<<1)
  96         #define MCPF_INTERRUPT_STATUS_EVENT1_E0             (1L<<2)
  97         #define MCPF_INTERRUPT_STATUS_ATTN1_E0              (1L<<3)
  98         #define MCPF_INTERRUPT_STATUS_EVENT0_E1             (1L<<4)
  99         #define MCPF_INTERRUPT_STATUS_ATTN0_E1              (1L<<5)
 100         #define MCPF_INTERRUPT_STATUS_EVENT1_E1             (1L<<6)
 101         #define MCPF_INTERRUPT_STATUS_ATTN1_E1              (1L<<7)
 102         #define MCPF_INTERRUPT_STATUS_EVENT2_E0             (1L<<8)
 103         #define MCPF_INTERRUPT_STATUS_ATTN2_E0              (1L<<9)
 104         #define MCPF_INTERRUPT_STATUS_EVENT3_E0             (1L<<10)
 105         #define MCPF_INTERRUPT_STATUS_ATTN3_E0              (1L<<11)
 106         #define MCPF_INTERRUPT_STATUS_SOFT_INTERRUPT        (1L<<31)
 107 
 108     u32_t mcpf_unused_a[2];
 109     u32_t mcpf_unused_b[16];
 110     u32_t mcpf_unused_c[4];
 111     u32_t mcpf_free_counter_value;
 112     u32_t mcpf_timesync_clock_e0_0;
 113     u32_t mcpf_timesync_clock_e0_1;
 114     u32_t mcpf_timesync_clock_e1_0;
 115     u32_t mcpf_timesync_clock_e1_1;
 116     u32_t mcpf_soft_interrupt;
 117         #define MCPF_SOFT_INTERRUPT_INTERRUPT               (1L<<31)
 118 
 119     u32_t mcpf_program_counter;
 120         #define MCPF_PROGRAM_COUNTER_INTERRUPT              (0xffffffffL<<0)
 121 
 122     u32_t mcpf_mcp_doorbell_status;
 123         #define MCPF_MCP_DOORBELL_STATUS_STATUS             (0xffffL<<0)
 124 
 125     u32_t mcpf_dbg_mux_message;
 126         #define MCPF_DBG_MUX_MESSAGE_DATA                   (0xffffffffL<<0)
 127 
 128     u32_t mcpf_unused_d[10];
 129     u32_t mcpf_mcp_vfid;
 130         #define MCPF_MCP_VFID_VFID                          (0xffL<<0)
 131         #define MCPF_MCP_VFID_VFID_VALID                    (1L<<16)
 132         #define MCPF_MCP_VFID_PATHID                        (1L<<20)
 133         #define MCPF_MCP_VFID_FIO_REG_EN                    (1L<<30)
 134         #define MCPF_MCP_VFID_PATH_FORCE                    (1L<<31)
 135 
 136     u32_t mcpf_unused_e[80];
 137     u32_t mcpf_mult_status;
 138         #define MCPF_MULT_STATUS_MULTIPLY_DONE              (1L<<0)
 139 
 140     u32_t mcpf_mult_result;
 141     u32_t mcpf_mult_a;
 142         #define MCPF_MULT_A_VALUE                           (0xffffL<<0)
 143 
 144     u32_t mcpf_mult_b;
 145         #define MCPF_MULT_B_VALUE                           (0xffffL<<0)
 146 
 147     u32_t mcpf_unused_f[39036];
 148     u32_t mcpf_nvm_command;
 149         #define MCPF_NVM_COMMAND_RST                        (1L<<0)
 150         #define MCPF_NVM_COMMAND_DONE                       (1L<<3)
 151         #define MCPF_NVM_COMMAND_DOIT                       (1L<<4)
 152         #define MCPF_NVM_COMMAND_WR                         (1L<<5)
 153         #define MCPF_NVM_COMMAND_ERASE                      (1L<<6)
 154         #define MCPF_NVM_COMMAND_FIRST                      (1L<<7)
 155         #define MCPF_NVM_COMMAND_LAST                       (1L<<8)
 156         #define MCPF_NVM_COMMAND_ADDR_INCR                  (1L<<9)
 157         #define MCPF_NVM_COMMAND_WREN                       (1L<<16)
 158         #define MCPF_NVM_COMMAND_WRDI                       (1L<<17)
 159         #define MCPF_NVM_COMMAND_ERASE_ALL                  (1L<<18)
 160         #define MCPF_NVM_COMMAND_RD_ID                      (1L<<20)
 161         #define MCPF_NVM_COMMAND_RD_STATUS                  (1L<<21)
 162         #define MCPF_NVM_COMMAND_MODE_256                   (1L<<22)
 163 
 164     u32_t mcpf_nvm_status;
 165         #define MCPF_NVM_STATUS_SPI_FSM_STATE               (0x1fL<<0)
 166             #define MCPF_NVM_STATUS_SPI_FSM_STATE_SPI_IDLE  (0L<<0)
 167             #define MCPF_NVM_STATUS_SPI_FSM_STATE_SPI_CMD0  (1L<<0)
 168             #define MCPF_NVM_STATUS_SPI_FSM_STATE_SPI_CMD1  (2L<<0)
 169             #define MCPF_NVM_STATUS_SPI_FSM_STATE_SPI_CMD_FINISH0  (3L<<0)
 170             #define MCPF_NVM_STATUS_SPI_FSM_STATE_SPI_CMD_FINISH1  (4L<<0)
 171             #define MCPF_NVM_STATUS_SPI_FSM_STATE_SPI_ADDR0  (5L<<0)
 172             #define MCPF_NVM_STATUS_SPI_FSM_STATE_SPI_WRITE_DATA0  (6L<<0)
 173             #define MCPF_NVM_STATUS_SPI_FSM_STATE_SPI_WRITE_DATA1  (7L<<0)
 174             #define MCPF_NVM_STATUS_SPI_FSM_STATE_SPI_WRITE_DATA2  (8L<<0)
 175             #define MCPF_NVM_STATUS_SPI_FSM_STATE_SPI_WRITE_DATA3  (9L<<0)
 176             #define MCPF_NVM_STATUS_SPI_FSM_STATE_SPI_READ_DATA0  (10L<<0)
 177             #define MCPF_NVM_STATUS_SPI_FSM_STATE_SPI_READ_DATA1  (11L<<0)
 178             #define MCPF_NVM_STATUS_SPI_FSM_STATE_SPI_READ_DATA2  (12L<<0)
 179             #define MCPF_NVM_STATUS_SPI_FSM_STATE_SPI_READ_STATUS_RDID0  (13L<<0)
 180             #define MCPF_NVM_STATUS_SPI_FSM_STATE_SPI_READ_STATUS_RDID1  (14L<<0)
 181             #define MCPF_NVM_STATUS_SPI_FSM_STATE_SPI_READ_STATUS_RDID2  (15L<<0)
 182             #define MCPF_NVM_STATUS_SPI_FSM_STATE_SPI_READ_STATUS_RDID3  (16L<<0)
 183             #define MCPF_NVM_STATUS_SPI_FSM_STATE_SPI_READ_STATUS_RDID4  (17L<<0)
 184             #define MCPF_NVM_STATUS_SPI_FSM_STATE_SPI_CHECK_BUSY  (18L<<0)
 185             #define MCPF_NVM_STATUS_SPI_FSM_STATE_SPI_FIRST_WR  (19L<<0)
 186             #define MCPF_NVM_STATUS_SPI_FSM_STATE_SPI_ERASE  (20L<<0)
 187             #define MCPF_NVM_STATUS_SPI_FSM_STATE_SPI_WAIT  (21L<<0)
 188             #define MCPF_NVM_STATUS_SPI_FSM_STATE_SPI_WAIT1  (22L<<0)
 189             #define MCPF_NVM_STATUS_SPI_FSM_STATE_SPI_LOAD_BUFFER  (23L<<0)
 190             #define MCPF_NVM_STATUS_SPI_FSM_STATE_SPI_RDATA_2_BUFFER0  (24L<<0)
 191             #define MCPF_NVM_STATUS_SPI_FSM_STATE_SPI_RDATA_2_BUFFER1  (25L<<0)
 192             #define MCPF_NVM_STATUS_SPI_FSM_STATE_SPI_RDATA_2_BUFFER2  (26L<<0)
 193             #define MCPF_NVM_STATUS_SPI_FSM_STATE_SPI_RDATA_2_BUFFER3  (27L<<0)
 194             #define MCPF_NVM_STATUS_SPI_FSM_STATE_SPI_STORE_BUFFER0  (28L<<0)
 195             #define MCPF_NVM_STATUS_SPI_FSM_STATE_SPI_STORE_BUFFER1  (29L<<0)
 196             #define MCPF_NVM_STATUS_SPI_FSM_STATE_SPI_WDATA_2_BUFFER0  (30L<<0)
 197             #define MCPF_NVM_STATUS_SPI_FSM_STATE_SPI_WDATA_2_BUFFER1  (31L<<0)
 198 
 199     u32_t mcpf_nvm_write;
 200         #define MCPF_NVM_WRITE_NVM_WRITE_VALUE              (0xffffffffL<<0)
 201             #define MCPF_NVM_WRITE_NVM_WRITE_VALUE_BIT_BANG  (0L<<0)
 202             #define MCPF_NVM_WRITE_NVM_WRITE_VALUE_SI       (1L<<0)
 203             #define MCPF_NVM_WRITE_NVM_WRITE_VALUE_SO       (2L<<0)
 204             #define MCPF_NVM_WRITE_NVM_WRITE_VALUE_CS_B     (4L<<0)
 205             #define MCPF_NVM_WRITE_NVM_WRITE_VALUE_SCLK     (8L<<0)
 206 
 207     u32_t mcpf_nvm_addr;
 208         #define MCPF_NVM_ADDR_NVM_ADDR_VALUE                (0xffffffL<<0)
 209             #define MCPF_NVM_ADDR_NVM_ADDR_VALUE_BIT_BANG   (0L<<0)
 210             #define MCPF_NVM_ADDR_NVM_ADDR_VALUE_SI         (1L<<0)
 211             #define MCPF_NVM_ADDR_NVM_ADDR_VALUE_SO         (2L<<0)
 212             #define MCPF_NVM_ADDR_NVM_ADDR_VALUE_CS_B       (4L<<0)
 213             #define MCPF_NVM_ADDR_NVM_ADDR_VALUE_SCLK       (8L<<0)
 214 
 215     u32_t mcpf_nvm_read;
 216         #define MCPF_NVM_READ_NVM_READ_VALUE                (0xffffffffL<<0)
 217             #define MCPF_NVM_READ_NVM_READ_VALUE_BIT_BANG   (0L<<0)
 218             #define MCPF_NVM_READ_NVM_READ_VALUE_SI         (1L<<0)
 219             #define MCPF_NVM_READ_NVM_READ_VALUE_SO         (2L<<0)
 220             #define MCPF_NVM_READ_NVM_READ_VALUE_CS_B       (4L<<0)
 221             #define MCPF_NVM_READ_NVM_READ_VALUE_SCLK       (8L<<0)
 222 
 223     u32_t mcpf_nvm_cfg1;
 224         #define MCPF_NVM_CFG1_FLASH_MODE                    (1L<<0)
 225         #define MCPF_NVM_CFG1_BUFFER_MODE                   (1L<<1)
 226         #define MCPF_NVM_CFG1_PASS_MODE                     (1L<<2)
 227         #define MCPF_NVM_CFG1_BITBANG_MODE                  (1L<<3)
 228         #define MCPF_NVM_CFG1_STATUS_BIT                    (0x7L<<4)
 229         #define MCPF_NVM_CFG1_SPI_CLK_DIV                   (0xfL<<7)
 230         #define MCPF_NVM_CFG1_SEE_CLK_DIV                   (0x7ffL<<11)
 231         #define MCPF_NVM_CFG1_STRAP_CONTROL_0               (1L<<23)
 232         #define MCPF_NVM_CFG1_PROTECT_MODE                  (1L<<24)
 233         #define MCPF_NVM_CFG1_FLASH_SIZE                    (1L<<25)
 234         #define MCPF_NVM_CFG1_FW_USTRAP_1                   (1L<<26)
 235         #define MCPF_NVM_CFG1_FW_USTRAP_0                   (1L<<27)
 236         #define MCPF_NVM_CFG1_FW_USTRAP_2                   (1L<<28)
 237         #define MCPF_NVM_CFG1_FW_USTRAP_3                   (1L<<29)
 238         #define MCPF_NVM_CFG1_FW_FLASH_TYPE_EN              (1L<<30)
 239         #define MCPF_NVM_CFG1_COMPAT_BYPASSS                (1L<<31)
 240 
 241     u32_t mcpf_nvm_cfg2;
 242         #define MCPF_NVM_CFG2_ERASE_CMD                     (0xffL<<0)
 243         #define MCPF_NVM_CFG2_CSB_W                         (0xffL<<8)
 244         #define MCPF_NVM_CFG2_STATUS_CMD                    (0xffL<<16)
 245         #define MCPF_NVM_CFG2_READ_ID_CMD                   (0xffL<<24)
 246 
 247     u32_t mcpf_nvm_cfg3;
 248         #define MCPF_NVM_CFG3_BUFFER_RD_CMD                 (0xffL<<0)
 249         #define MCPF_NVM_CFG3_WRITE_CMD                     (0xffL<<8)
 250         #define MCPF_NVM_CFG3_FAST_READ_CMD                 (0xffL<<16)
 251         #define MCPF_NVM_CFG3_READ_CMD                      (0xffL<<24)
 252 
 253     u32_t mcpf_nvm_sw_arb;
 254         #define MCPF_NVM_SW_ARB_ARB_REQ_SET0                (1L<<0)
 255         #define MCPF_NVM_SW_ARB_ARB_REQ_SET1                (1L<<1)
 256         #define MCPF_NVM_SW_ARB_ARB_REQ_SET2                (1L<<2)
 257         #define MCPF_NVM_SW_ARB_ARB_REQ_SET3                (1L<<3)
 258         #define MCPF_NVM_SW_ARB_ARB_REQ_CLR0                (1L<<4)
 259         #define MCPF_NVM_SW_ARB_ARB_REQ_CLR1                (1L<<5)
 260         #define MCPF_NVM_SW_ARB_ARB_REQ_CLR2                (1L<<6)
 261         #define MCPF_NVM_SW_ARB_ARB_REQ_CLR3                (1L<<7)
 262         #define MCPF_NVM_SW_ARB_ARB_ARB0                    (1L<<8)
 263         #define MCPF_NVM_SW_ARB_ARB_ARB1                    (1L<<9)
 264         #define MCPF_NVM_SW_ARB_ARB_ARB2                    (1L<<10)
 265         #define MCPF_NVM_SW_ARB_ARB_ARB3                    (1L<<11)
 266         #define MCPF_NVM_SW_ARB_REQ0                        (1L<<12)
 267         #define MCPF_NVM_SW_ARB_REQ1                        (1L<<13)
 268         #define MCPF_NVM_SW_ARB_REQ2                        (1L<<14)
 269         #define MCPF_NVM_SW_ARB_REQ3                        (1L<<15)
 270 
 271     u32_t mcpf_nvm_jedec_id;
 272         #define MCPF_NVM_JEDEC_ID_EXTENDED_DEVICE_INFO_LENGTH  (0xffL<<0)
 273         #define MCPF_NVM_JEDEC_ID_DEVICE_ID                 (0xffffL<<8)
 274         #define MCPF_NVM_JEDEC_ID_MANUFACTURE_ID            (0xffL<<24)
 275 
 276     u32_t mcpf_nvm_cfg5;
 277         #define MCPF_NVM_CFG5_WREN_CMD                      (0xffL<<0)
 278         #define MCPF_NVM_CFG5_WRDI_CMD                      (0xffL<<8)
 279         #define MCPF_NVM_CFG5_ERASE_ALL_CMD                 (0xffL<<16)
 280         #define MCPF_NVM_CFG5_USE_BUFFER                    (1L<<30)
 281         #define MCPF_NVM_CFG5_USE_LEGACY_SPI_FSM            (1L<<31)
 282 
 283     u32_t mcpf_nvm_cfg4;
 284         #define MCPF_NVM_CFG4_FLASH_SIZE                    (0x7L<<0)
 285             #define MCPF_NVM_CFG4_FLASH_SIZE_1MBIT          (0L<<0)
 286             #define MCPF_NVM_CFG4_FLASH_SIZE_2MBIT          (1L<<0)
 287             #define MCPF_NVM_CFG4_FLASH_SIZE_4MBIT          (2L<<0)
 288             #define MCPF_NVM_CFG4_FLASH_SIZE_8MBIT          (3L<<0)
 289             #define MCPF_NVM_CFG4_FLASH_SIZE_16MBIT         (4L<<0)
 290             #define MCPF_NVM_CFG4_FLASH_SIZE_32MBIT         (5L<<0)
 291             #define MCPF_NVM_CFG4_FLASH_SIZE_64MBIT         (6L<<0)
 292             #define MCPF_NVM_CFG4_FLASH_SIZE_128MBIT        (7L<<0)
 293         #define MCPF_NVM_CFG4_FLASH_VENDOR                  (1L<<3)
 294             #define MCPF_NVM_CFG4_FLASH_VENDOR_ST           (0L<<3)
 295             #define MCPF_NVM_CFG4_FLASH_VENDOR_ATMEL        (1L<<3)
 296         #define MCPF_NVM_CFG4_MODE_256_EMPTY_BIT_LOC        (0x3L<<4)
 297             #define MCPF_NVM_CFG4_MODE_256_EMPTY_BIT_LOC_BIT8  (0L<<4)
 298             #define MCPF_NVM_CFG4_MODE_256_EMPTY_BIT_LOC_BIT9  (1L<<4)
 299             #define MCPF_NVM_CFG4_MODE_256_EMPTY_BIT_LOC_BIT10  (2L<<4)
 300             #define MCPF_NVM_CFG4_MODE_256_EMPTY_BIT_LOC_BIT11  (3L<<4)
 301         #define MCPF_NVM_CFG4_STATUS_BIT_POLARITY           (1L<<6)
 302         #define MCPF_NVM_CFG4_FAST                          (1L<<7)
 303         #define MCPF_NVM_CFG4_SI_INPUT_RELAXED_TIMING       (1L<<8)
 304         #define MCPF_NVM_CFG4_PASS_MODE_RELAXED_TIMING      (1L<<9)
 305         #define MCPF_NVM_CFG4_SR_TURNAROUND                 (1L<<10)
 306         #define MCPF_NVM_CFG4_READ_DUMMY_CYCLES             (0xfL<<11)
 307         #define MCPF_NVM_CFG4_FAST_READ_DUMMY_CYCLES        (0xfL<<15)
 308         #define MCPF_NVM_CFG4_SPI_SLOW_CLK_DIV              (0xfL<<19)
 309         #define MCPF_NVM_CFG4_SLOW_CLK_4_BUFFER_RD          (1L<<23)
 310         #define MCPF_NVM_CFG4_SLOW_CLK_4_ERASE              (1L<<24)
 311         #define MCPF_NVM_CFG4_SLOW_CLK_4_FAST_READ          (1L<<25)
 312         #define MCPF_NVM_CFG4_SLOW_CLK_4_READ               (1L<<26)
 313         #define MCPF_NVM_CFG4_SLOW_CLK_4_READ_ID            (1L<<27)
 314         #define MCPF_NVM_CFG4_SLOW_CLK_4_STATUS             (1L<<28)
 315         #define MCPF_NVM_CFG4_SLOW_CLK_4_WRDI               (1L<<29)
 316         #define MCPF_NVM_CFG4_SLOW_CLK_4_WREN               (1L<<30)
 317         #define MCPF_NVM_CFG4_SLOW_CLK_4_WRITE              (1L<<31)
 318 
 319     u32_t mcpf_nvm_reconfig;
 320         #define MCPF_NVM_RECONFIG_ORIG_STRAP_VALUE          (0xfL<<0)
 321             #define MCPF_NVM_RECONFIG_ORIG_STRAP_VALUE_ST   (0L<<0)
 322             #define MCPF_NVM_RECONFIG_ORIG_STRAP_VALUE_ATMEL  (1L<<0)
 323         #define MCPF_NVM_RECONFIG_RECONFIG_STRAP_VALUE      (0xfL<<4)
 324         #define MCPF_NVM_RECONFIG_RESERVED                  (0x7fffffL<<8)
 325         #define MCPF_NVM_RECONFIG_RECONFIG_DONE             (1L<<31)
 326 
 327     u32_t mcpf_nvm_nvm_unused[242];
 328     u32_t mcpf_nvm_nvm_reg_end;
 329     u32_t mcpf_unused_g[1536];
 330     u32_t mcpf_smbus_config;
 331         #define MCPF_SMBUS_CONFIG_HW_ARP_ASSIGN_ADDR        (1L<<7)
 332         #define MCPF_SMBUS_CONFIG_ARP_EN0                   (1L<<8)
 333         #define MCPF_SMBUS_CONFIG_ARP_EN1                   (1L<<9)
 334         #define MCPF_SMBUS_CONFIG_MASTER_RTRY_CNT           (0xfL<<16)
 335         #define MCPF_SMBUS_CONFIG_TIMESTAMP_CNT_EN          (1L<<26)
 336         #define MCPF_SMBUS_CONFIG_PROMISCOUS_MODE           (1L<<27)
 337         #define MCPF_SMBUS_CONFIG_EN_NIC_SMB_ADDR_0         (1L<<28)
 338         #define MCPF_SMBUS_CONFIG_BIT_BANG_EN               (1L<<29)
 339         #define MCPF_SMBUS_CONFIG_SMB_EN                    (1L<<30)
 340         #define MCPF_SMBUS_CONFIG_RESET                     (1L<<31)
 341 
 342     u32_t mcpf_smbus_timing_config;
 343         #define MCPF_SMBUS_TIMING_CONFIG_SMBUS_IDLE_TIME    (0xffL<<8)
 344         #define MCPF_SMBUS_TIMING_CONFIG_PERIODIC_SLAVE_STRETCH  (0xffL<<16)
 345         #define MCPF_SMBUS_TIMING_CONFIG_RANDOM_SLAVE_STRETCH  (0x7fL<<24)
 346         #define MCPF_SMBUS_TIMING_CONFIG_MODE_400           (1L<<31)
 347 
 348     u32_t mcpf_smbus_address;
 349         #define MCPF_SMBUS_ADDRESS_NIC_SMB_ADDR0            (0x7fL<<0)
 350         #define MCPF_SMBUS_ADDRESS_EN_NIC_SMB_ADDR0         (1L<<7)
 351         #define MCPF_SMBUS_ADDRESS_NIC_SMB_ADDR1            (0x7fL<<8)
 352         #define MCPF_SMBUS_ADDRESS_EN_NIC_SMB_ADDR1         (1L<<15)
 353         #define MCPF_SMBUS_ADDRESS_NIC_SMB_ADDR2            (0x7fL<<16)
 354         #define MCPF_SMBUS_ADDRESS_EN_NIC_SMB_ADDR2         (1L<<23)
 355         #define MCPF_SMBUS_ADDRESS_NIC_SMB_ADDR3            (0x7fL<<24)
 356         #define MCPF_SMBUS_ADDRESS_EN_NIC_SMB_ADDR3         (1L<<31)
 357 
 358     u32_t mcpf_smbus_master_fifo_control;
 359         #define MCPF_SMBUS_MASTER_FIFO_CONTROL_MASTER_RX_FIFO_THRESHOLD  (0x7fL<<8)
 360         #define MCPF_SMBUS_MASTER_FIFO_CONTROL_MASTER_RX_PKT_COUNT  (0x7fL<<16)
 361         #define MCPF_SMBUS_MASTER_FIFO_CONTROL_MASTER_TX_FIFO_FLUSH  (1L<<30)
 362         #define MCPF_SMBUS_MASTER_FIFO_CONTROL_MASTER_RX_FIFO_FLUSH  (1L<<31)
 363 
 364     u32_t mcpf_smbus_slave_fifo_control;
 365         #define MCPF_SMBUS_SLAVE_FIFO_CONTROL_SLAVE_RX_FIFO_THRESHOLD  (0x7fL<<8)
 366         #define MCPF_SMBUS_SLAVE_FIFO_CONTROL_SLAVE_RX_PKT_COUNT  (0x7fL<<16)
 367         #define MCPF_SMBUS_SLAVE_FIFO_CONTROL_SLAVE_TX_FIFO_FLUSH  (1L<<30)
 368         #define MCPF_SMBUS_SLAVE_FIFO_CONTROL_SLAVE_RX_FIFO_FLUSH  (1L<<31)
 369 
 370     u32_t mcpf_smbus_bit_bang_control;
 371         #define MCPF_SMBUS_BIT_BANG_CONTROL_SMBDAT_OUT_EN   (1L<<28)
 372         #define MCPF_SMBUS_BIT_BANG_CONTROL_SMBDAT_IN       (1L<<29)
 373         #define MCPF_SMBUS_BIT_BANG_CONTROL_SMBCLK_OUT_EN   (1L<<30)
 374         #define MCPF_SMBUS_BIT_BANG_CONTROL_SMBCLK_IN       (1L<<31)
 375 
 376     u32_t mcpf_smbus_watchdog;
 377         #define MCPF_SMBUS_WATCHDOG_WATCHDOG                (0xffffL<<0)
 378 
 379     u32_t mcpf_smbus_heartbeat;
 380         #define MCPF_SMBUS_HEARTBEAT_HEARTBEAT              (0xffffL<<0)
 381 
 382     u32_t mcpf_smbus_poll_asf;
 383         #define MCPF_SMBUS_POLL_ASF_POLL_ASF                (0xffffL<<0)
 384 
 385     u32_t mcpf_smbus_poll_legacy;
 386         #define MCPF_SMBUS_POLL_LEGACY_POLL_LEGACY          (0xffffL<<0)
 387 
 388     u32_t mcpf_smbus_retran;
 389         #define MCPF_SMBUS_RETRAN_RETRAN                    (0xffL<<0)
 390 
 391     u32_t mcpf_smbus_timestamp;
 392         #define MCPF_SMBUS_TIMESTAMP_TIMESTAMP              (0xffffffffL<<0)
 393 
 394     u32_t mcpf_smbus_master_command;
 395         #define MCPF_SMBUS_MASTER_COMMAND_RD_BYTE_COUNT     (0xffL<<0)
 396         #define MCPF_SMBUS_MASTER_COMMAND_PEC               (1L<<8)
 397         #define MCPF_SMBUS_MASTER_COMMAND_SMBUS_PROTOCOL    (0xfL<<9)
 398             #define MCPF_SMBUS_MASTER_COMMAND_SMBUS_PROTOCOL_0000  (0L<<9)
 399             #define MCPF_SMBUS_MASTER_COMMAND_SMBUS_PROTOCOL_0001  (1L<<9)
 400             #define MCPF_SMBUS_MASTER_COMMAND_SMBUS_PROTOCOL_0010  (2L<<9)
 401             #define MCPF_SMBUS_MASTER_COMMAND_SMBUS_PROTOCOL_0011  (3L<<9)
 402             #define MCPF_SMBUS_MASTER_COMMAND_SMBUS_PROTOCOL_0100  (4L<<9)
 403             #define MCPF_SMBUS_MASTER_COMMAND_SMBUS_PROTOCOL_0101  (5L<<9)
 404             #define MCPF_SMBUS_MASTER_COMMAND_SMBUS_PROTOCOL_0110  (6L<<9)
 405             #define MCPF_SMBUS_MASTER_COMMAND_SMBUS_PROTOCOL_0111  (7L<<9)
 406             #define MCPF_SMBUS_MASTER_COMMAND_SMBUS_PROTOCOL_1000  (8L<<9)
 407             #define MCPF_SMBUS_MASTER_COMMAND_SMBUS_PROTOCOL_1001  (9L<<9)
 408             #define MCPF_SMBUS_MASTER_COMMAND_SMBUS_PROTOCOL_1010  (10L<<9)
 409             #define MCPF_SMBUS_MASTER_COMMAND_SMBUS_PROTOCOL_1011  (11L<<9)
 410         #define MCPF_SMBUS_MASTER_COMMAND_STATUS            (0x7L<<25)
 411             #define MCPF_SMBUS_MASTER_COMMAND_STATUS_000    (0L<<25)
 412             #define MCPF_SMBUS_MASTER_COMMAND_STATUS_001    (1L<<25)
 413             #define MCPF_SMBUS_MASTER_COMMAND_STATUS_010    (2L<<25)
 414             #define MCPF_SMBUS_MASTER_COMMAND_STATUS_011    (3L<<25)
 415             #define MCPF_SMBUS_MASTER_COMMAND_STATUS_100    (4L<<25)
 416             #define MCPF_SMBUS_MASTER_COMMAND_STATUS_101    (5L<<25)
 417             #define MCPF_SMBUS_MASTER_COMMAND_STATUS_110    (6L<<25)
 418             #define MCPF_SMBUS_MASTER_COMMAND_STATUS_111    (7L<<25)
 419         #define MCPF_SMBUS_MASTER_COMMAND_ABORT             (1L<<30)
 420         #define MCPF_SMBUS_MASTER_COMMAND_START_BUSY        (1L<<31)
 421 
 422     u32_t mcpf_smbus_slave_command;
 423         #define MCPF_SMBUS_SLAVE_COMMAND_PEC                (1L<<8)
 424         #define MCPF_SMBUS_SLAVE_COMMAND_STATUS             (0x7L<<23)
 425             #define MCPF_SMBUS_SLAVE_COMMAND_STATUS_000     (0L<<23)
 426             #define MCPF_SMBUS_SLAVE_COMMAND_STATUS_101     (5L<<23)
 427             #define MCPF_SMBUS_SLAVE_COMMAND_STATUS_111     (7L<<23)
 428         #define MCPF_SMBUS_SLAVE_COMMAND_ABORT              (1L<<30)
 429         #define MCPF_SMBUS_SLAVE_COMMAND_START              (1L<<31)
 430 
 431     u32_t mcpf_smbus_event_enable;
 432         #define MCPF_SMBUS_EVENT_ENABLE_WATCHDOG_TO_EN      (1L<<0)
 433         #define MCPF_SMBUS_EVENT_ENABLE_HEARTBEAT_TO_EN     (1L<<1)
 434         #define MCPF_SMBUS_EVENT_ENABLE_POLL_ASF_TO_EN      (1L<<2)
 435         #define MCPF_SMBUS_EVENT_ENABLE_POLL_LEGACY_TO_EN   (1L<<3)
 436         #define MCPF_SMBUS_EVENT_ENABLE_RETRANSMIT_TO_EN    (1L<<4)
 437         #define MCPF_SMBUS_EVENT_ENABLE_SLAVE_ARP_EVENT_EN  (1L<<20)
 438         #define MCPF_SMBUS_EVENT_ENABLE_SLAVE_RD_EVENT_EN   (1L<<21)
 439         #define MCPF_SMBUS_EVENT_ENABLE_SLAVE_TX_UNDERRUN_EN  (1L<<22)
 440         #define MCPF_SMBUS_EVENT_ENABLE_SLAVE_START_BUSY_EN  (1L<<23)
 441         #define MCPF_SMBUS_EVENT_ENABLE_SLAVE_RX_EVENT_EN   (1L<<24)
 442         #define MCPF_SMBUS_EVENT_ENABLE_SLAVE_RX_THRESHOLD_HIT_EN  (1L<<25)
 443         #define MCPF_SMBUS_EVENT_ENABLE_SLAVE_RX_FIFO_FULL_EN  (1L<<26)
 444         #define MCPF_SMBUS_EVENT_ENABLE_MASTER_TX_UNDERRUN_EN  (1L<<27)
 445         #define MCPF_SMBUS_EVENT_ENABLE_MASTER_START_BUSY_EN  (1L<<28)
 446         #define MCPF_SMBUS_EVENT_ENABLE_MASTER_RX_EVENT_EN  (1L<<29)
 447         #define MCPF_SMBUS_EVENT_ENABLE_MASTER_RX_THRESHOLD_HIT_EN  (1L<<30)
 448         #define MCPF_SMBUS_EVENT_ENABLE_MASTER_RX_FIFO_FULL_EN  (1L<<31)
 449 
 450     u32_t mcpf_smbus_event_status;
 451         #define MCPF_SMBUS_EVENT_STATUS_WATCHDOG_TO         (1L<<0)
 452         #define MCPF_SMBUS_EVENT_STATUS_HEARTBEAT_TO        (1L<<1)
 453         #define MCPF_SMBUS_EVENT_STATUS_POLL_ASF_TO         (1L<<2)
 454         #define MCPF_SMBUS_EVENT_STATUS_POLL_LEGACY_TO      (1L<<3)
 455         #define MCPF_SMBUS_EVENT_STATUS_RETRANSMIT_TO       (1L<<4)
 456         #define MCPF_SMBUS_EVENT_STATUS_SLAVE_ARP_EVENT     (1L<<20)
 457         #define MCPF_SMBUS_EVENT_STATUS_SLAVE_RD_EVENT      (1L<<21)
 458         #define MCPF_SMBUS_EVENT_STATUS_SLAVE_TX_UNDERRUN   (1L<<22)
 459         #define MCPF_SMBUS_EVENT_STATUS_SLAVE_START_BUSY    (1L<<23)
 460         #define MCPF_SMBUS_EVENT_STATUS_SLAVE_RX_EVENT      (1L<<24)
 461         #define MCPF_SMBUS_EVENT_STATUS_SLAVE_RX_THRESHOLD_HIT  (1L<<25)
 462         #define MCPF_SMBUS_EVENT_STATUS_SLAVE_RX_FIFO_FULL  (1L<<26)
 463         #define MCPF_SMBUS_EVENT_STATUS_MASTER_TX_UNDERRUN  (1L<<27)
 464         #define MCPF_SMBUS_EVENT_STATUS_MASTER_START_BUSY   (1L<<28)
 465         #define MCPF_SMBUS_EVENT_STATUS_MASTER_RX_EVENT     (1L<<29)
 466         #define MCPF_SMBUS_EVENT_STATUS_MASTER_RX_THRESHOLD_HIT  (1L<<30)
 467         #define MCPF_SMBUS_EVENT_STATUS_MASTER_RX_FIFO_FULL  (1L<<31)
 468 
 469     u32_t mcpf_smbus_master_data_write;
 470         #define MCPF_SMBUS_MASTER_DATA_WRITE_MASTER_SMBUS_WR_DATA  (0xffL<<0)
 471         #define MCPF_SMBUS_MASTER_DATA_WRITE_WR_STATUS      (1L<<31)
 472 
 473     u32_t mcpf_smbus_master_data_read;
 474         #define MCPF_SMBUS_MASTER_DATA_READ_MASTER_SMBUS_RD_DATA  (0xffL<<0)
 475         #define MCPF_SMBUS_MASTER_DATA_READ_PEC_ERR         (1L<<29)
 476         #define MCPF_SMBUS_MASTER_DATA_READ_RD_STATUS       (0x3L<<30)
 477             #define MCPF_SMBUS_MASTER_DATA_READ_RD_STATUS_00  (0L<<30)
 478             #define MCPF_SMBUS_MASTER_DATA_READ_RD_STATUS_01  (1L<<30)
 479             #define MCPF_SMBUS_MASTER_DATA_READ_RD_STATUS_10  (2L<<30)
 480             #define MCPF_SMBUS_MASTER_DATA_READ_RD_STATUS_11  (3L<<30)
 481 
 482     u32_t mcpf_smbus_slave_data_write;
 483         #define MCPF_SMBUS_SLAVE_DATA_WRITE_SLAVE_SMBUS_WR_DATA  (0xffL<<0)
 484         #define MCPF_SMBUS_SLAVE_DATA_WRITE_WR_STATUS       (1L<<31)
 485             #define MCPF_SMBUS_SLAVE_DATA_WRITE_WR_STATUS_0  (0L<<31)
 486             #define MCPF_SMBUS_SLAVE_DATA_WRITE_WR_STATUS_1  (1L<<31)
 487 
 488     u32_t mcpf_smbus_slave_data_read;
 489         #define MCPF_SMBUS_SLAVE_DATA_READ_SLAVE_SMBUS_RD_DATA  (0xffL<<0)
 490         #define MCPF_SMBUS_SLAVE_DATA_READ_ERR_STATUS       (0x3L<<28)
 491             #define MCPF_SMBUS_SLAVE_DATA_READ_ERR_STATUS_00  (0L<<28)
 492             #define MCPF_SMBUS_SLAVE_DATA_READ_ERR_STATUS_01  (1L<<28)
 493             #define MCPF_SMBUS_SLAVE_DATA_READ_ERR_STATUS_10  (2L<<28)
 494             #define MCPF_SMBUS_SLAVE_DATA_READ_ERR_STATUS_11  (3L<<28)
 495         #define MCPF_SMBUS_SLAVE_DATA_READ_RD_STATUS        (0x3L<<30)
 496             #define MCPF_SMBUS_SLAVE_DATA_READ_RD_STATUS_00  (0L<<30)
 497             #define MCPF_SMBUS_SLAVE_DATA_READ_RD_STATUS_01  (1L<<30)
 498             #define MCPF_SMBUS_SLAVE_DATA_READ_RD_STATUS_10  (2L<<30)
 499             #define MCPF_SMBUS_SLAVE_DATA_READ_RD_STATUS_11  (3L<<30)
 500 
 501     u32_t mcpf_smbus_smb_unused_1[12];
 502     u32_t mcpf_smbus_arp_state;
 503         #define MCPF_SMBUS_ARP_STATE_AV_FLAG0               (1L<<0)
 504         #define MCPF_SMBUS_ARP_STATE_AR_FLAG0               (1L<<1)
 505         #define MCPF_SMBUS_ARP_STATE_AV_FLAG1               (1L<<4)
 506         #define MCPF_SMBUS_ARP_STATE_AR_FLAG1               (1L<<5)
 507 
 508     u32_t mcpf_smbus_smb_unused_2[3];
 509     u32_t mcpf_smbus_udid0_3;
 510         #define MCPF_SMBUS_UDID0_3_BYTE_12                  (0xffL<<0)
 511         #define MCPF_SMBUS_UDID0_3_BYTE_13                  (0xffL<<8)
 512         #define MCPF_SMBUS_UDID0_3_BYTE_14                  (0xffL<<16)
 513         #define MCPF_SMBUS_UDID0_3_BYTE_15                  (0xffL<<24)
 514 
 515     u32_t mcpf_smbus_udid0_2;
 516         #define MCPF_SMBUS_UDID0_2_BYTE_8                   (0xffL<<0)
 517         #define MCPF_SMBUS_UDID0_2_BYTE_9                   (0xffL<<8)
 518         #define MCPF_SMBUS_UDID0_2_BYTE_10                  (0xffL<<16)
 519         #define MCPF_SMBUS_UDID0_2_BYTE_11                  (0xffL<<24)
 520 
 521     u32_t mcpf_smbus_udid0_1;
 522         #define MCPF_SMBUS_UDID0_1_BYTE_4                   (0xffL<<0)
 523         #define MCPF_SMBUS_UDID0_1_BYTE_5                   (0xffL<<8)
 524         #define MCPF_SMBUS_UDID0_1_BYTE_6                   (0xffL<<16)
 525         #define MCPF_SMBUS_UDID0_1_BYTE_7                   (0xffL<<24)
 526 
 527     u32_t mcpf_smbus_udid0_0;
 528         #define MCPF_SMBUS_UDID0_0_BYTE_0                   (0xffL<<0)
 529         #define MCPF_SMBUS_UDID0_0_BYTE_1                   (0xffL<<8)
 530         #define MCPF_SMBUS_UDID0_0_BYTE_2                   (0xffL<<16)
 531         #define MCPF_SMBUS_UDID0_0_BYTE_3                   (0xffL<<24)
 532 
 533     u32_t mcpf_smbus_udid1_3;
 534         #define MCPF_SMBUS_UDID1_3_BYTE_12                  (0xffL<<0)
 535         #define MCPF_SMBUS_UDID1_3_BYTE_13                  (0xffL<<8)
 536         #define MCPF_SMBUS_UDID1_3_BYTE_14                  (0xffL<<16)
 537         #define MCPF_SMBUS_UDID1_3_BYTE_15                  (0xffL<<24)
 538 
 539     u32_t mcpf_smbus_udid1_2;
 540         #define MCPF_SMBUS_UDID1_2_BYTE_8                   (0xffL<<0)
 541         #define MCPF_SMBUS_UDID1_2_BYTE_9                   (0xffL<<8)
 542         #define MCPF_SMBUS_UDID1_2_BYTE_10                  (0xffL<<16)
 543         #define MCPF_SMBUS_UDID1_2_BYTE_11                  (0xffL<<24)
 544 
 545     u32_t mcpf_smbus_udid1_1;
 546         #define MCPF_SMBUS_UDID1_1_BYTE_4                   (0xffL<<0)
 547         #define MCPF_SMBUS_UDID1_1_BYTE_5                   (0xffL<<8)
 548         #define MCPF_SMBUS_UDID1_1_BYTE_6                   (0xffL<<16)
 549         #define MCPF_SMBUS_UDID1_1_BYTE_7                   (0xffL<<24)
 550 
 551     u32_t mcpf_smbus_udid1_0;
 552         #define MCPF_SMBUS_UDID1_0_BYTE_0                   (0xffL<<0)
 553         #define MCPF_SMBUS_UDID1_0_BYTE_1                   (0xffL<<8)
 554         #define MCPF_SMBUS_UDID1_0_BYTE_2                   (0xffL<<16)
 555         #define MCPF_SMBUS_UDID1_0_BYTE_3                   (0xffL<<24)
 556 
 557     u32_t mcpf_smbus_smb_unused_3[211];
 558     u32_t mcpf_smbus_smb_reg_end;
 559     u32_t mcpf_unused_h[512];
 560     u32_t mcpf_m2p_status;
 561         #define MCPF_M2P_STATUS_M2P_BUSY                    (1L<<0)
 562         #define MCPF_M2P_STATUS_M2P_PKT_INUSE_ERROR         (1L<<1)
 563         #define MCPF_M2P_STATUS_M2P_PKT_OVERFLOW_ERROR      (1L<<2)
 564         #define MCPF_M2P_STATUS_M2P_PKT_UNDERFLOW_ERROR     (1L<<3)
 565         #define MCPF_M2P_STATUS_M2P_ZERO_LENGTH_ERROR       (1L<<4)
 566         #define MCPF_M2P_STATUS_M2P_DATA_SM                 (0x3L<<8)
 567         #define MCPF_M2P_STATUS_M2P_PKT_FIFO_STATUS         (0x3fL<<16)
 568 
 569     u32_t mcpf_m2p_command;
 570         #define MCPF_M2P_COMMAND_SEND_PKT_TO_PXP            (1L<<0)
 571 
 572     u32_t mcpf_m2p_vdm_length;
 573         #define MCPF_M2P_VDM_LENGTH_VDM_LENGTH              (0x7fL<<0)
 574 
 575     u32_t mcpf_m2p_pci_id;
 576         #define MCPF_M2P_PCI_ID_PCI_ID                      (0xffffL<<0)
 577 
 578     u32_t mcpf_m2p_vendor_id;
 579         #define MCPF_M2P_VENDOR_ID_VENDOR_ID                (0xffffL<<0)
 580 
 581     u32_t mcpf_m2p_vq_id;
 582         #define MCPF_M2P_VQ_ID_VQR_ID                       (0x1fL<<0)
 583 
 584     u32_t mcpf_m2p_src_fid;
 585         #define MCPF_M2P_SRC_FID_SRC_FID                    (0xffffL<<0)
 586 
 587     u32_t mcpf_m2p_route_type;
 588         #define MCPF_M2P_ROUTE_TYPE_ROUTE_TYPE              (0x7L<<0)
 589 
 590     u32_t mcpf_m2p_tag;
 591         #define MCPF_M2P_TAG_TAG                            (0xffL<<0)
 592 
 593     u32_t mcpf_m2p_vendor_dword;
 594         #define MCPF_M2P_VENDOR_DWORD_VENDOR_DWORD          (0xffffffffL<<0)
 595 
 596     u32_t mcpf_m2p_path_id;
 597         #define MCPF_M2P_PATH_ID_PATH_ID                    (1L<<0)
 598 
 599     u32_t mcpf_m2p_tx_data_fifo;
 600         #define MCPF_M2P_TX_DATA_FIFO_FIFO_DATA             (0xffffffffL<<0)
 601 
 602     u32_t mcpf_m2p_unused[51];
 603     u32_t mcpf_m2p_reg_end;
 604     u32_t mcpf_p2m_status;
 605         #define MCPF_P2M_STATUS_PKT_HDR_CNT                 (0x7fL<<0)
 606         #define MCPF_P2M_STATUS_RESERVED1                   (0x1ffL<<7)
 607         #define MCPF_P2M_STATUS_PKT_DATA_CNT                (0x1ffL<<16)
 608         #define MCPF_P2M_STATUS_RESERVED2                   (0x3fL<<25)
 609         #define MCPF_P2M_STATUS_P2M_ATTN_BIT                (1L<<31)
 610 
 611     u32_t mcpf_p2m_config;
 612         #define MCPF_P2M_CONFIG_BACKPRESSURE_MODE           (1L<<0)
 613         #define MCPF_P2M_CONFIG_DRAIN_MODE                  (1L<<1)
 614         #define MCPF_P2M_CONFIG_VID_FILTER_DISCARD          (1L<<2)
 615         #define MCPF_P2M_CONFIG_RESERVED                    (0x1fffffffL<<3)
 616 
 617     u32_t mcpf_p2m_vid_filt_config_0;
 618         #define MCPF_P2M_VID_FILT_CONFIG_0_VID_FILT_VENDORID  (0xffffL<<0)
 619         #define MCPF_P2M_VID_FILT_CONFIG_0_VID_FILT_DISCARD  (1L<<16)
 620         #define MCPF_P2M_VID_FILT_CONFIG_0_VID_FILT_ENABLE  (1L<<17)
 621 
 622     u32_t mcpf_p2m_vid_filt_config_1;
 623         #define MCPF_P2M_VID_FILT_CONFIG_1_VID_FILT_VENDORID  (0xffffL<<0)
 624         #define MCPF_P2M_VID_FILT_CONFIG_1_VID_FILT_DISCARD  (1L<<16)
 625         #define MCPF_P2M_VID_FILT_CONFIG_1_VID_FILT_ENABLE  (1L<<17)
 626 
 627     u32_t mcpf_p2m_tag_filt_config;
 628         #define MCPF_P2M_TAG_FILT_CONFIG_TAG_FILT_VALUE     (0xffL<<0)
 629         #define MCPF_P2M_TAG_FILT_CONFIG_TAG_FILT_MASK      (0xffL<<8)
 630         #define MCPF_P2M_TAG_FILT_CONFIG_TAG_FILT_DISCARD   (1L<<16)
 631 
 632     u32_t mcpf_p2m_length_filt_config;
 633         #define MCPF_P2M_LENGTH_FILT_CONFIG_LENGTH_MIN_VALUE  (0x7fL<<0)
 634         #define MCPF_P2M_LENGTH_FILT_CONFIG_TAG_FILT_MASK   (0x7fL<<8)
 635 
 636     u32_t mcpf_p2m_discard_stat_vendorid;
 637         #define MCPF_P2M_DISCARD_STAT_VENDORID_DISCARD_STAT_VENDORID  (0xffffffffL<<0)
 638 
 639     u32_t mcpf_p2m_discard_stat_tag;
 640         #define MCPF_P2M_DISCARD_STAT_TAG_DISCARD_STAT_TAG  (0xffffffffL<<0)
 641 
 642     u32_t mcpf_p2m_discard_stat_length;
 643         #define MCPF_P2M_DISCARD_STAT_LENGTH_DISCARD_STAT_LENGTH  (0xffffffffL<<0)
 644 
 645     u32_t mcpf_p2m_drop_stat;
 646         #define MCPF_P2M_DROP_STAT_DROP_STAT                (0xffffffffL<<0)
 647 
 648     u32_t mcpf_p2m_rcvd_stat;
 649         #define MCPF_P2M_RCVD_STAT_RCVD_STAT                (0xffffffffL<<0)
 650 
 651     u32_t mcpf_p2m_hdr_single_reg;
 652         #define MCPF_P2M_HDR_SINGLE_REG_HEADER_SINGLE_REG_MODE  (0xffffffffL<<0)
 653 
 654     u32_t mcpf_p2m_hdr_fifo_0;
 655         #define MCPF_P2M_HDR_FIFO_0_HEADER_0                (0xffffffffL<<0)
 656 
 657     u32_t mcpf_p2m_hdr_fifo_1;
 658         #define MCPF_P2M_HDR_FIFO_1_HEADER_1                (0xffffffffL<<0)
 659 
 660     u32_t mcpf_p2m_hdr_fifo_2;
 661         #define MCPF_P2M_HDR_FIFO_2_HEADER_2                (0xffffffffL<<0)
 662 
 663     u32_t mcpf_p2m_hdr_fifo_3;
 664         #define MCPF_P2M_HDR_FIFO_3_HEADER_3                (0x7L<<0)
 665         #define MCPF_P2M_HDR_FIFO_3_RESERVED                (0x1fffffffL<<3)
 666 
 667     u32_t mcpf_p2m_data_fifo;
 668         #define MCPF_P2M_DATA_FIFO_DATA                     (0xffffffffL<<0)
 669 
 670     u32_t mcpf_p2m_vdm_length;
 671         #define MCPF_P2M_VDM_LENGTH_VDM_LENGTH              (0x7fL<<0)
 672 
 673     u32_t mcpf_p2m_pci_req_id;
 674         #define MCPF_P2M_PCI_REQ_ID_PCI_REQ_ID              (0xffffL<<0)
 675 
 676     u32_t mcpf_p2m_vendor_id;
 677         #define MCPF_P2M_VENDOR_ID_VENDOR_ID                (0xffffL<<0)
 678 
 679     u32_t mcpf_p2m_fid;
 680         #define MCPF_P2M_FID_FID                            (0xffffL<<0)
 681 
 682     u32_t mcpf_p2m_vendor_dword;
 683         #define MCPF_P2M_VENDOR_DWORD_VENDOR_DWORD          (0xffffffffL<<0)
 684 
 685     u32_t mcpf_p2m_other_hdr_fields;
 686         #define MCPF_P2M_OTHER_HDR_FIELDS_PATH_ID           (1L<<0)
 687         #define MCPF_P2M_OTHER_HDR_FIELDS_ROUTING_FIELD     (0x7L<<4)
 688         #define MCPF_P2M_OTHER_HDR_FIELDS_TAG               (0xffL<<16)
 689 
 690     u32_t mcpf_p2m_unused[40];
 691     u32_t mcpf_p2m_reg_end;
 692     u32_t mcpf_cache_pim_nvram_base;
 693     u32_t mcpf_cache_paging_enable;
 694         #define MCPF_CACHE_PAGING_ENABLE_ENABLE             (1L<<0)
 695 
 696     u32_t mcpf_cache_fetch_completion;
 697     u32_t mcpf_cache_cache_ctrl_status_0;
 698         #define MCPF_CACHE_CACHE_CTRL_STATUS_0_LOCK         (1L<<0)
 699         #define MCPF_CACHE_CACHE_CTRL_STATUS_0_ACTIVE       (1L<<1)
 700         #define MCPF_CACHE_CACHE_CTRL_STATUS_0_VALID        (1L<<2)
 701         #define MCPF_CACHE_CACHE_CTRL_STATUS_0_NVRAM_PAGE_OFFSET  (0x1ffL<<3)
 702 
 703     u32_t mcpf_cache_cache_ctrl_status_1;
 704         #define MCPF_CACHE_CACHE_CTRL_STATUS_1_LOCK         (1L<<0)
 705         #define MCPF_CACHE_CACHE_CTRL_STATUS_1_ACTIVE       (1L<<1)
 706         #define MCPF_CACHE_CACHE_CTRL_STATUS_1_VALID        (1L<<2)
 707         #define MCPF_CACHE_CACHE_CTRL_STATUS_1_NVRAM_PAGE_OFFSET  (0x1ffL<<3)
 708 
 709     u32_t mcpf_cache_cache_ctrl_status_2;
 710         #define MCPF_CACHE_CACHE_CTRL_STATUS_2_LOCK         (1L<<0)
 711         #define MCPF_CACHE_CACHE_CTRL_STATUS_2_ACTIVE       (1L<<1)
 712         #define MCPF_CACHE_CACHE_CTRL_STATUS_2_VALID        (1L<<2)
 713         #define MCPF_CACHE_CACHE_CTRL_STATUS_2_NVRAM_PAGE_OFFSET  (0x1ffL<<3)
 714 
 715     u32_t mcpf_cache_cache_ctrl_status_3;
 716         #define MCPF_CACHE_CACHE_CTRL_STATUS_3_LOCK         (1L<<0)
 717         #define MCPF_CACHE_CACHE_CTRL_STATUS_3_ACTIVE       (1L<<1)
 718         #define MCPF_CACHE_CACHE_CTRL_STATUS_3_VALID        (1L<<2)
 719         #define MCPF_CACHE_CACHE_CTRL_STATUS_3_NVRAM_PAGE_OFFSET  (0x1ffL<<3)
 720 
 721     u32_t mcpf_cache_cache_ctrl_status_4;
 722         #define MCPF_CACHE_CACHE_CTRL_STATUS_4_LOCK         (1L<<0)
 723         #define MCPF_CACHE_CACHE_CTRL_STATUS_4_ACTIVE       (1L<<1)
 724         #define MCPF_CACHE_CACHE_CTRL_STATUS_4_VALID        (1L<<2)
 725         #define MCPF_CACHE_CACHE_CTRL_STATUS_4_NVRAM_PAGE_OFFSET  (0x1ffL<<3)
 726 
 727     u32_t mcpf_cache_cache_ctrl_status_5;
 728         #define MCPF_CACHE_CACHE_CTRL_STATUS_5_LOCK         (1L<<0)
 729         #define MCPF_CACHE_CACHE_CTRL_STATUS_5_ACTIVE       (1L<<1)
 730         #define MCPF_CACHE_CACHE_CTRL_STATUS_5_VALID        (1L<<2)
 731         #define MCPF_CACHE_CACHE_CTRL_STATUS_5_NVRAM_PAGE_OFFSET  (0x1ffL<<3)
 732 
 733     u32_t mcpf_cache_cache_ctrl_status_6;
 734         #define MCPF_CACHE_CACHE_CTRL_STATUS_6_LOCK         (1L<<0)
 735         #define MCPF_CACHE_CACHE_CTRL_STATUS_6_ACTIVE       (1L<<1)
 736         #define MCPF_CACHE_CACHE_CTRL_STATUS_6_VALID        (1L<<2)
 737         #define MCPF_CACHE_CACHE_CTRL_STATUS_6_NVRAM_PAGE_OFFSET  (0x1ffL<<3)
 738 
 739     u32_t mcpf_cache_cache_ctrl_status_7;
 740         #define MCPF_CACHE_CACHE_CTRL_STATUS_7_LOCK         (1L<<0)
 741         #define MCPF_CACHE_CACHE_CTRL_STATUS_7_ACTIVE       (1L<<1)
 742         #define MCPF_CACHE_CACHE_CTRL_STATUS_7_VALID        (1L<<2)
 743         #define MCPF_CACHE_CACHE_CTRL_STATUS_7_NVRAM_PAGE_OFFSET  (0x1ffL<<3)
 744 
 745     u32_t mcpf_cache_cache_ctrl_status_8;
 746         #define MCPF_CACHE_CACHE_CTRL_STATUS_8_LOCK         (1L<<0)
 747         #define MCPF_CACHE_CACHE_CTRL_STATUS_8_ACTIVE       (1L<<1)
 748         #define MCPF_CACHE_CACHE_CTRL_STATUS_8_VALID        (1L<<2)
 749         #define MCPF_CACHE_CACHE_CTRL_STATUS_8_NVRAM_PAGE_OFFSET  (0x1ffL<<3)
 750 
 751     u32_t mcpf_cache_cache_ctrl_status_9;
 752         #define MCPF_CACHE_CACHE_CTRL_STATUS_9_LOCK         (1L<<0)
 753         #define MCPF_CACHE_CACHE_CTRL_STATUS_9_ACTIVE       (1L<<1)
 754         #define MCPF_CACHE_CACHE_CTRL_STATUS_9_VALID        (1L<<2)
 755         #define MCPF_CACHE_CACHE_CTRL_STATUS_9_NVRAM_PAGE_OFFSET  (0x1ffL<<3)
 756 
 757     u32_t mcpf_cache_cache_ctrl_status_10;
 758         #define MCPF_CACHE_CACHE_CTRL_STATUS_10_LOCK        (1L<<0)
 759         #define MCPF_CACHE_CACHE_CTRL_STATUS_10_ACTIVE      (1L<<1)
 760         #define MCPF_CACHE_CACHE_CTRL_STATUS_10_VALID       (1L<<2)
 761         #define MCPF_CACHE_CACHE_CTRL_STATUS_10_NVRAM_PAGE_OFFSET  (0x1ffL<<3)
 762 
 763     u32_t mcpf_cache_cache_ctrl_status_11;
 764         #define MCPF_CACHE_CACHE_CTRL_STATUS_11_LOCK        (1L<<0)
 765         #define MCPF_CACHE_CACHE_CTRL_STATUS_11_ACTIVE      (1L<<1)
 766         #define MCPF_CACHE_CACHE_CTRL_STATUS_11_VALID       (1L<<2)
 767         #define MCPF_CACHE_CACHE_CTRL_STATUS_11_NVRAM_PAGE_OFFSET  (0x1ffL<<3)
 768 
 769     u32_t mcpf_cache_cache_ctrl_status_12;
 770         #define MCPF_CACHE_CACHE_CTRL_STATUS_12_LOCK        (1L<<0)
 771         #define MCPF_CACHE_CACHE_CTRL_STATUS_12_ACTIVE      (1L<<1)
 772         #define MCPF_CACHE_CACHE_CTRL_STATUS_12_VALID       (1L<<2)
 773         #define MCPF_CACHE_CACHE_CTRL_STATUS_12_NVRAM_PAGE_OFFSET  (0x1ffL<<3)
 774 
 775     u32_t mcpf_cache_cache_ctrl_status_13;
 776         #define MCPF_CACHE_CACHE_CTRL_STATUS_13_LOCK        (1L<<0)
 777         #define MCPF_CACHE_CACHE_CTRL_STATUS_13_ACTIVE      (1L<<1)
 778         #define MCPF_CACHE_CACHE_CTRL_STATUS_13_VALID       (1L<<2)
 779         #define MCPF_CACHE_CACHE_CTRL_STATUS_13_NVRAM_PAGE_OFFSET  (0x1ffL<<3)
 780 
 781     u32_t mcpf_cache_cache_ctrl_status_14;
 782         #define MCPF_CACHE_CACHE_CTRL_STATUS_14_LOCK        (1L<<0)
 783         #define MCPF_CACHE_CACHE_CTRL_STATUS_14_ACTIVE      (1L<<1)
 784         #define MCPF_CACHE_CACHE_CTRL_STATUS_14_VALID       (1L<<2)
 785         #define MCPF_CACHE_CACHE_CTRL_STATUS_14_NVRAM_PAGE_OFFSET  (0x1ffL<<3)
 786 
 787     u32_t mcpf_cache_cache_ctrl_status_15;
 788         #define MCPF_CACHE_CACHE_CTRL_STATUS_15_LOCK        (1L<<0)
 789         #define MCPF_CACHE_CACHE_CTRL_STATUS_15_ACTIVE      (1L<<1)
 790         #define MCPF_CACHE_CACHE_CTRL_STATUS_15_VALID       (1L<<2)
 791         #define MCPF_CACHE_CACHE_CTRL_STATUS_15_NVRAM_PAGE_OFFSET  (0x1ffL<<3)
 792 
 793     u32_t mcpf_cache_img_loader_baddr;
 794         #define MCPF_CACHE_IMG_LOADER_BADDR_VALUE           (0x7fffffL<<2)
 795 
 796     u32_t mcpf_cache_img_loader_gaddr;
 797         #define MCPF_CACHE_IMG_LOADER_GADDR_VALUE           (0x7fffffL<<2)
 798 
 799     u32_t mcpf_cache_img_loader_caddr;
 800         #define MCPF_CACHE_IMG_LOADER_CADDR_VALUE           (0x7fffffL<<2)
 801 
 802     u32_t mcpf_cache_img_loader_cdata;
 803         #define MCPF_CACHE_IMG_LOADER_CDATA_VALUE           (0x7fffffL<<2)
 804 
 805     u32_t mcpf_cache_img_loader_cfg;
 806         #define MCPF_CACHE_IMG_LOADER_CFG_VALUE             (0x7fffffL<<2)
 807 
 808     u32_t mcpf_cache_stat_hit_counter;
 809     u32_t mcpf_cache_stat_miss_counter;
 810     u32_t mcpf_cache_last_page_0;
 811         #define MCPF_CACHE_LAST_PAGE_0_VALID                (1L<<0)
 812         #define MCPF_CACHE_LAST_PAGE_0_IS_LAST              (1L<<1)
 813         #define MCPF_CACHE_LAST_PAGE_0_PAGE_INDEX           (0xfL<<2)
 814         #define MCPF_CACHE_LAST_PAGE_0_PAGE_OFFSET          (0x1ffL<<6)
 815 
 816     u32_t mcpf_cache_last_page_1;
 817         #define MCPF_CACHE_LAST_PAGE_1_VALID                (1L<<0)
 818         #define MCPF_CACHE_LAST_PAGE_1_IS_LAST              (1L<<1)
 819         #define MCPF_CACHE_LAST_PAGE_1_PAGE_INDEX           (0xfL<<2)
 820         #define MCPF_CACHE_LAST_PAGE_1_PAGE_OFFSET          (0x1ffL<<6)
 821 
 822     u32_t mcpf_cache_page_fetch_state;
 823     u32_t mcpf_cache_cache_error_status;
 824         #define MCPF_CACHE_CACHE_ERROR_STATUS_OUT_OF_BOUNDS_READ  (1L<<0)
 825         #define MCPF_CACHE_CACHE_ERROR_STATUS_ILLEGAL_FETCH  (1L<<1)
 826 
 827     u32_t mcpf_cache_cache_unused[33];
 828     u32_t mcpf_cache_reg_end;
 829     u32_t mcpf_unused_i[1088];
 830     u32_t mcpf_to_bmb_fifo_command;
 831         #define MCPF_TO_BMB_FIFO_COMMAND_FLUSH              (1L<<0)
 832         #define MCPF_TO_BMB_FIFO_COMMAND_ERROR              (1L<<1)
 833         #define MCPF_TO_BMB_FIFO_COMMAND_PKT_TC             (0xfL<<4)
 834         #define MCPF_TO_BMB_FIFO_COMMAND_PKT_LEN            (0xffffL<<16)
 835 
 836     u32_t mcpf_to_bmb_fifo_status;
 837         #define MCPF_TO_BMB_FIFO_STATUS_WRITE_DONE          (1L<<0)
 838 
 839     u32_t mcpf_to_bmb_fifo_wr_data;
 840     u32_t mcpf_bmb_unused_1;
 841     u32_t mcpf_to_bmb_fifo_sop_dscr0;
 842     u32_t mcpf_to_bmb_fifo_sop_dscr1;
 843     u32_t mcpf_to_bmb_fifo_sop_dscr2;
 844     u32_t mcpf_to_bmb_fifo_sop_dscr3;
 845     u32_t mcpf_frm_bmb_fifo_command;
 846         #define MCPF_FRM_BMB_FIFO_COMMAND_READ_DONE         (1L<<0)
 847         #define MCPF_FRM_BMB_FIFO_COMMAND_FLUSH             (1L<<4)
 848         #define MCPF_FRM_BMB_FIFO_COMMAND_CLR_PKT_COUNTERS  (1L<<5)
 849 
 850     u32_t mcpf_frm_bmb_fifo_status;
 851         #define MCPF_FRM_BMB_FIFO_STATUS_BUSY               (1L<<0)
 852         #define MCPF_FRM_BMB_FIFO_STATUS_PKT_TC0            (0x3L<<2)
 853         #define MCPF_FRM_BMB_FIFO_STATUS_DATA_VALID         (1L<<4)
 854         #define MCPF_FRM_BMB_FIFO_STATUS_SOP                (1L<<5)
 855         #define MCPF_FRM_BMB_FIFO_STATUS_EOP                (1L<<6)
 856         #define MCPF_FRM_BMB_FIFO_STATUS_ERR                (1L<<7)
 857         #define MCPF_FRM_BMB_FIFO_STATUS_BYTE_VALID         (0x3L<<8)
 858             #define MCPF_FRM_BMB_FIFO_STATUS_BYTE_VALID_0   (0L<<8)
 859             #define MCPF_FRM_BMB_FIFO_STATUS_BYTE_VALID_1   (1L<<8)
 860             #define MCPF_FRM_BMB_FIFO_STATUS_BYTE_VALID_2   (2L<<8)
 861             #define MCPF_FRM_BMB_FIFO_STATUS_BYTE_VALID_3   (3L<<8)
 862         #define MCPF_FRM_BMB_FIFO_STATUS_PKT_TC1            (0x3L<<10)
 863         #define MCPF_FRM_BMB_FIFO_STATUS_PKT_PORT           (0xfL<<12)
 864         #define MCPF_FRM_BMB_FIFO_STATUS_PKT_LEN            (0xffffL<<16)
 865 
 866     u32_t mcpf_bmb_unused_2;
 867     u32_t mcpf_frm_bmb_fifo_rd_data;
 868     u32_t mcpf_frm_bmb_fifo_sop_dscr0;
 869     u32_t mcpf_frm_bmb_fifo_sop_dscr1;
 870     u32_t mcpf_frm_bmb_fifo_sop_dscr2;
 871     u32_t mcpf_frm_bmb_fifo_sop_dscr3;
 872     u32_t mcpf_bmb_unused_3[239];
 873     u32_t mcpf_bmb_reg_end;
 874     u32_t mcpf_unused_j[87808];
 875 } mcp_fio_t;
 876 
 877 #endif /* MCP_FIO_H */